You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Michael Hirsch <mh...@nubridges.com> on 2002/09/17 22:03:03 UTC

calling PHP from Tomcat

I'm sure I'm doing something wrong, but I can't figure out what.  I'm
trying to call PHP from Tomcat (and them later call back to java from
PHP).  I've followed what directions I can find, but to no avail.

I have a file test.php which I can put in either webapps/ROOT or
webapps/examples.  test .php contains just 

          <?php phpinfo(); ?>

(I've also tried it with basic HTML headers)

According to the docs that came with PHP, Tomcat is supposed to load
libphp4 and evaluate the function, but I just get the error below. 
libphp4.so is globally accessible and I've run ldconfig.  phpsrvlt.jar
is in the classpath.

I've added these lines to web.xml in 

  <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>

Without these lines the file test.php is just echoed back without any
attempt at evaluation.

I've done a websearch, and the error message seems common, but no one
has reported it in my context.  I'm guessing from the responses to other
questions that I need some kind of context to define my classloader, but
I don't know what.

Clearly, I'm missing something, but what?  I feel like I'm just one step
away.

Thanks in advance,

Michael

Here's the error message:


Internal Servlet Error:
 
java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:488)
        at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:106)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:243)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:51)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:190)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:183)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:281)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:287)
        at
java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:548)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:287)
        at
java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:548)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
        at
org.apache.tomcat.util.depend.DependClassLoader.loadClassInternal1(DependClassLoader.java:174)
        at
org.apache.tomcat.util.depend.DependClassLoader12$1.run(DependClassLoader12.java:92)
        at java.security.AccessController.doPrivileged(Native Method)
        at
org.apache.tomcat.util.depend.DependClassLoader12.loadClass(DependClassLoader12.java:90)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
        at
org.apache.tomcat.facade.ServletHandler.getServlet(ServletHandler.java:343)
        at
org.apache.tomcat.facade.ServletHandler.preInit(ServletHandler.java:439)
        at
org.apache.tomcat.facade.ServletHandler.init(ServletHandler.java:228)
        at
org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:472)
        at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:917)
        at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:833)
        at
org.apache.tomcat.modules.server.Http10Interceptor.processConnection(Http10Interceptor.java:176)
        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:494)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:516)
        at java.lang.Thread.run(Thread.java:479)



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: calling PHP from Tomcat

Posted by Michael Hirsch <mh...@nubridges.com>.
Sorry, I should have mentioned, I'm using a straight install of Tomcat
3.3.1 and PHP 4.2.3.

--Michael

On Tue, 2002-09-17 at 16:03, Michael Hirsch wrote:
> I'm sure I'm doing something wrong, but I can't figure out what.  I'm
> trying to call PHP from Tomcat (and them later call back to java from
> PHP).  I've followed what directions I can find, but to no avail.
> 
> I have a file test.php which I can put in either webapps/ROOT or
> webapps/examples.  test .php contains just 
> 
>           <?php phpinfo(); ?>
> 
> (I've also tried it with basic HTML headers)
> 
> According to the docs that came with PHP, Tomcat is supposed to load
> libphp4 and evaluate the function, but I just get the error below. 
> libphp4.so is globally accessible and I've run ldconfig.  phpsrvlt.jar
> is in the classpath.
> 
> I've added these lines to web.xml in 
> 
>   <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>
> 
> Without these lines the file test.php is just echoed back without any
> attempt at evaluation.
> 
> I've done a websearch, and the error message seems common, but no one
> has reported it in my context.  I'm guessing from the responses to other
> questions that I need some kind of context to define my classloader, but
> I don't know what.
> 
> Clearly, I'm missing something, but what?  I feel like I'm just one step
> away.
> 
> Thanks in advance,
> 
> Michael
> 
> Here's the error message:
> 
> 
> Internal Servlet Error:
>  
> java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet
>         at java.lang.ClassLoader.defineClass0(Native Method)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:488)
>         at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:106)
>         at java.net.URLClassLoader.defineClass(URLClassLoader.java:243)
>         at java.net.URLClassLoader.access$100(URLClassLoader.java:51)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:190)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:183)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:281)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:287)
>         at
> java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:548)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:287)
>         at
> java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:548)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
>         at
> org.apache.tomcat.util.depend.DependClassLoader.loadClassInternal1(DependClassLoader.java:174)
>         at
> org.apache.tomcat.util.depend.DependClassLoader12$1.run(DependClassLoader12.java:92)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at
> org.apache.tomcat.util.depend.DependClassLoader12.loadClass(DependClassLoader12.java:90)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
>         at
> org.apache.tomcat.facade.ServletHandler.getServlet(ServletHandler.java:343)
>         at
> org.apache.tomcat.facade.ServletHandler.preInit(ServletHandler.java:439)
>         at
> org.apache.tomcat.facade.ServletHandler.init(ServletHandler.java:228)
>         at
> org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:472)
>         at
> org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:917)
>         at
> org.apache.tomcat.core.ContextManager.service(ContextManager.java:833)
>         at
> org.apache.tomcat.modules.server.Http10Interceptor.processConnection(Http10Interceptor.java:176)
>         at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:494)
>         at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:516)
>         at java.lang.Thread.run(Thread.java:479)
> 
> 
> 
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>
> 



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>