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]