|
From: <php...@li...> - 2010-07-11 23:10:05
|
On 7/8/2010 1:18 AM, php...@li... wrote:
>> Jost - Thanks for your reply, but sorry to report that it resulted in
>> exactly the same symptoms. So no joy!
> If both tomcat intances show the same problem, the cause is external,
> for example a classpath problem. A "NoClassDefFoundError" for example
> caused b a library loaded from an external loader (e.g. the bootstrap
> loader).
>
> Please check the cause why your tomcat isn't able to instanciate a
> standard Java servlet.
>
>
> Regards,
> Jost Bökemeier
Jost - I fear I am quite baffled by this problem, and don't fully
understand your reply... My Tomcat6 server is having no problems running
other servlets, and it is only this php-java-bridge servlet that I am
having troubles with... I have tried a couple different things to see if
I could get anywhere and so far no joy...
I installed the 3 jar files - JavaBridge.jar, php-script.jar,
php-servlet.jar in the Tomcat6 lib directory - /usr/share/tomcat6/lib on
my server. I should think the Common class loader would be able to find
the class file for php.java.servlet.fastcgi.FastCGIServlet in the
php-servlet.jar file without any problems. I also tried to install
these 3 jar files in my local webapp directory where I placed my
test.php file - ROOT/WEB-INF/lib without success either. So one of the
class loaders should have been able to find the php-servlet.jar file and
loaded the FastCGIServlet class ok..
I applied the fixes suggested by Sravan and here is what my test.php
file now looks like -
<?php require_once("java/Java.inc");
echo java("java.lang.System")->getProperties(); ?>
and I included this lines in the web.xml file in the conf directory -
<listener>
<listener-class>php.java.servlet.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>PhpJavaServlet</servlet-name>
<servlet-class>php.java.servlet.PhpJavaServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>PhpCGIServlet</servlet-name>
<servlet-class>php.java.servlet.fastcgi.FastCGIServlet</servlet-class>
<init-param>
<param-name>prefer_system_php_exec</param-name>
<param-value>On</param-value>
</init-param>
<init-param>
<param-name>php_include_java</param-name>
<param-value>Off</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>PhpJavaServlet</servlet-name>
<url-pattern>*.phpjavabridge</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>PhpCGIServlet</servlet-name>
<url-pattern>*.php</url-pattern>
</servlet-mapping>
At this point I decided to try a different tactic and removed the
aforementioned jar files and deployed just the JavaBridge.war file
instead. That resulted in the following errors -
INFO: Deploying web application archive JavaBridge.war
Jul 11, 2010 4:03:29 PM org.apache.catalina.startup.ContextConfig init
SEVERE: Exception fixing docBase: {0}
java.io.FileNotFoundException:
/usr/share/tomcat6/webapps/JavaBridge/META-INF/MANIFEST.MF (No such file
or directory)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:457)
at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:173)
at
org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:882)
at
org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:1017)
at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:279)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at
org.apache.catalina.core.StandardContext.init(StandardContext.java:5398)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4177)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at
org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:902)
at
org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:740)
at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:500)
at
org.apache.catalina.startup.HostConfig.start(HostConfig.java:1258)
at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at
org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at
org.apache.catalina.core.StandardService.start(StandardService.java:516)
at
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Jul 11 16:03:30 VMBridge ERROR: An exception occured:
java.lang.IllegalArgumentException: Cannot access /WEB-INF/cgi within
the current web
directory. Explode your application .war file and try again.
java.lang.IllegalArgumentException: Cannot access /WEB-INF/cgi within
the current web directory. Explode your application .war file and try
again.
at php.java.servlet.CGIServlet.getRealPath(CGIServlet.java:998)
at
php.java.servlet.fastcgi.FastCGIServlet.checkCgiBinary(FastCGIServlet.java:179)
at
php.java.servlet.fastcgi.FastCGIServlet.init(FastCGIServlet.java:278)
at php.java.servlet.PhpCGIServlet.init(PhpCGIServlet.java:82)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)
at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4149)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4458)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at
org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:902)
at
org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:740)
at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:500)
at
org.apache.catalina.startup.HostConfig.start(HostConfig.java:1258)
at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at
org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at
org.apache.catalina.core.StandardService.start(StandardService.java:516)
at
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
So another dead end! Ideas? Marc
|