Tomcat is started using the startup.sh script provided and it runs using a specific tomcat account which has admin type rights. I am beginning to wonder what sort of problem this may be, as I must emphasise that: The runtime.exec() DOES work sometimes, and not others. There does not seem to be a pattern to when it works. Literally, I can click on the link and it will work, then click back and click on the link again, and it won't work!

Because of this, I am trying to rack my brains as to what might cause this runtime.exec() to throw a "cannot execute" error sometimes, but not others. It seems possible that it is not an error with Tomcat, as otherwise why would it not be consistently failing?
Cheers
Mark


Sameer Acharya wrote:
Doesent look like a SecurityManager issue cos that would have resulted in a 
SecurityException. Just glanced thru the exec api doc and found this

Starting an operating system process is highly system-dependent. Among the many things that can go wrong are: The operating system program file was not found. Access to the program file was denied. The working directory does not exist.
You will get an IOException if any of these happen.

 How do you start the tomcat and under what id does it run ??

-Sameer


Mark HB <[EMAIL PROTECTED]> wrote: HI,
It all runs fine as a standalone, and when I print the command that I am running using exec to the screen and then run it myself, it works fine. I had this servlet deployed on another machine, and I never had this problem. It is very odd, as sometimes it works and the executable is executed and the results are returned, and other times it returns the same error as before.
There doesn't seem to be any pattern as to when they work.
I have changed the policy file, to no affect

java.io.IOException: java.io.IOException:
/srv/www/tomcat5/base/webapps/simulator/WORK/yqzatmopa343/cimmsim:
cannot execute
       at java.lang.UNIXProcess.(UNIXProcess.java:143)
       at java.lang.Runtime.execInternal(Native Method)
       at java.lang.Runtime.exec(Runtime.java:566)
       at java.lang.Runtime.exec(Runtime.java:428)
       at RunSimulation.run(CimmSimServlet.java:655)

I am looking into deploying the servlet in the J2EE app server instead and seeing if that avoids this problem.
Its all very odd!
Thanks
Mark

Santosh Puranshettiwar wrote:
I agree with David. This does not seem to be a SecurityManager problem. Does your code run properly as a normal executable program (with main())?

Sameer Acharya wrote:
Have you tried adding following to your web app permissions in policy file

permission java.lang.RuntimePermission "java.lang.Runtime";

-Sameer



Mark HB  wrote: Hi,

My apologies for the confusion, but my previous claim to have sorted this problem out is now incorrect. It seems with the upgrade to 1.5.0, the execution of the external binary does work, --- but only sometimes?? ---. I can't seem to work out the exact conditions that it works, and seems to be random.


Could someone please indicate what I need to add/change in the catalina.policy file to allow the execution of external binaries. I've had a good look at this url and can't seem to find any indicators.

 > http://tomcat.apache.org/tomcat-5.0-doc/security-manager-howto.html

Cheers
Mark


-------------------------------------

Thanks Enrico,

However I seem to have inadvertently solved it. I was updating to the
latest release of jre and recompiled the servlet with 1.5.0 and now it
works.
Previously I was using 1.3.1.
So there we go.

Cheers
Mark

Enrico Giurin wrote:
Hello,
I guess yours is a problem of security manager of tomcat.
I think you have to modify some entries of the catalina.policy file.
http://tomcat.apache.org/tomcat-5.0-doc/security-manager-howto.html


Enrico.

----- Original Message ----- From: "Mark HB"
To: Sent: Tuesday, September 12, 2006 10:16 AM
Subject: Executing binary from Servlet


Hi,

I am looking for some help on a problem I have encountered with
executing a binary from a servlet using Runtime.getRuntime().exec()
The code that I have is simply executing a binary called "cimmsim":

File theDir = new File(curdir+"WORK/"+rand);
java.lang.String cmdline = theDir+"/cimmsim -f config";
try {
Process p = Runtime.getRuntime().exec(cmdline, null, theDir);
}
catch (IOException e)
{ e.printStackTrace(); }

The error that is produced is:
java.io.IOException: java.io.IOException:
/srv/www/tomcat5/base/webapps/simulator/WORK/yqzatmopa343/cimmsim:
cannot execute
       at java.lang.UNIXProcess.(UNIXProcess.java:143)
       at java.lang.Runtime.execInternal(Native Method)
       at java.lang.Runtime.exec(Runtime.java:566)
       at java.lang.Runtime.exec(Runtime.java:428)
       at RunSimulation.run(CimmSimServlet.java:655)

A uname -a on the system gives:
Linux apppx1 2.6.16.13-4-xen #1 SMP Wed May 3 04:53:23 UTC 2006 x86_64
x86_64 x86_64 GNU/Linux
SUSE LINUX 10.1

I have ensured that the permissions are set to at least 755 and am now
at a bit of a loss.
Any ideas?

Cheers
Mark



--
---------------------------------------------------------------------------
Mark Halling-Brown                      | Tel: +44-20-7631-6839
Research Associate                      |
Room 359                                | Fax: +44-20-7631-6803
School of Crystallography               |
Birkbeck College                        | Email:
Malet Street                            | [EMAIL PROTECTED]
London WC1E 7HX                         | [EMAIL PROTECTED]
UK                                      |
              http://people.cryst.bbk.ac.uk/~ghall04
---------------------------------------------------------------------------



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.12.2/443 - Release Date: 11/09/2006


___________________________________ Yahoo! Mail: gratis 1GB per i messaggi e allegati da 10MB http://mail.yahoo.it

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
---------------------------------------------------------------------------
Mark Halling-Brown                      | Tel: +44-20-7631-6839
Research Associate                      |
Room 359                                | Fax: +44-20-7631-6803
School of Crystallography               |
Birkbeck College                        | Email:
Malet Street                            | [EMAIL PROTECTED]
London WC1E 7HX                         | [EMAIL PROTECTED]
UK                                      |
http://people.cryst.bbk.ac.uk/~ghall04 ---------------------------------------------------------------------------


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to