Hello out there,
I try to create a Tomcat-servlet, which enables me to call a process on my
host. This is my attempt:
[code]
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Testservlet1 extends HttpServlet
{
public void doGet ( HttpServletRequest req, HttpServletResponse res ) throws
ServletException, IOException
{
int rueckgabe = 0;
rueckgabe = Fireone();
res.setContentType ( "text/html" );
PrintWriter out = res.getWriter();
out.println ( "<HTML>" );
out.println ( "<HEAD><TITLE>Testservlet1</TITLE></HEAD>" );
out.println ( "<BODY>" );
out.println ( "<BIG> Firestarter </BIG>" );
out.println ( "</BODY></HTML>" );
}
public int Fireone ( )
{
int rueck_gabe = 0;
try
{
String cmd1 = "/home/chris/eigener-proc";
Runtime rt = Runtime.getRuntime();
Process myproc = rt.exec( cmd1 );
rueck_gabe = myproc.waitFor();
System.out.println("die Rueckgabe war: " + rueck_gabe );
}
catch( IOException ioexc )
{
ioexc.printStackTrace();
}
catch( InterruptedException intexc )
{
intexc.printStackTrace();
}
return ( rueck_gabe );
}
}
[/code]
and this is the result:
[quote]
type Exception report
message
description The server encountered an internal error () that prevented it from
fulfilling this request.
exception
java.security.AccessControlException: access denied
(java.io.FilePermission /home/chris/eigener-proc execute)
at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:269)
at java.security.AccessController.checkPermission(AccessController.java:401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:524)
at java.lang.SecurityManager.checkExec(SecurityManager.java:771)
at java.lang.Runtime.exec(Runtime.java:563)
at java.lang.Runtime.exec(Runtime.java:428)
at java.lang.Runtime.exec(Runtime.java:364)
at java.lang.Runtime.exec(Runtime.java:326)
at Testservlet1.Fireone(Testservlet1.java:32)
at Testservlet1.doGet(Testservlet1.java:12)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.access$000
(ApplicationFilterChain.java:51)
at
org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:129)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:125)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Apache Tomcat/4.1
[/quote]
I know I have to edit the catalina.policy but in which part is not clear to
me.
Can anybody help me out?
I have unfortunately not the time to work this out. Otherwise we choose
Apache/Perl for this purpose.
--
Christian Stalp
Institut f�r Medizinische Biometrie, Epidemiologie und Informatik
Johannes-Gutenberg-Universit�t Mainz
Tel.: 06131 / 17-3107
E-Mail: [EMAIL PROTECTED]
----------------------------------------------------------------------
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]