Click to See Complete Forum and Search --> : PHP4 Java Servlet SAPI module not working with Jakarta Tomcat, plz help


billy
05-15-2003, 04:36 PM
Hi,

I've managed to get the phpsrvlt.jar built and I made a lib directory in my $CATALINA_HOME, but when I try to view the test.php I wrote (just contains <?php phpinfo(); ?>) i get the following error:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception (I removed this cuz it also gives a "root cause" below)

root cause

java.lang.ClassNotFoundException: net.php.servlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1443)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1289)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:885)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:668)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
at java.lang.Thread.run(Thread.java:536)


If I refresh that page, I get an "HTTP Status 503 - Servlet php is currently unavailable"

Any ideas what the problem could be? I've tried putting the phpsrvlt.jar in $CATALINA_HOME/server/lib as well, but had the same results. I checked and the servlet, formatter and reflect classes are in the phpsrvlt.jar. I have the following lines added into to the $CATALINA_HOME/conf/web.xml:
<servlet>
<servlet-name>
php
</servlet-name>
<servlet-class>
net.php.servlet
</servlet-class>
</servlet>
<servlet>
<servlet-name>
php-formatter
</servlet-name>
<servlet-class>
net.php.formatter
</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>
php
</servlet-name>
<url-pattern>
*.php
</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>
php-formatter
</servlet-name>
<url-pattern>
*.phps
</url-pattern>
</servlet-mapping>

<welcome-file>index.php</welcome-file> - this one's inside of the <welcome-file-list> tag

Thanks

tsinka
05-16-2003, 03:44 PM
Hi,

seems like tomcat doesn't find that class. AFAIK this class is in the file phpsrvlt.jar (wherever it is on the server).

You might have to add phpsrvlt.jar to the classpath or place it in one of the lib/classes directories of tomcat (what to do depends a little bit on the version of tomcat).