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 |