Apache-SOAP/Tomcat Classpath problem
Hi, Im runing Tomcat 4.0.6. I have a web application running and Apache-SOAP installed. The web application is publishing methods to be accessed via soap-rpc. When the client code makes a call, the fault code is badTargetObjectURI. The problem is the classpath on Tomcat doesnt contain the class files for implementation code. However, when I add the correct path to the catalina.bat startup script, the .jar files in my WEB-INF\lib directory arent being added to the tomcat classpath. Has anyone seen or experienced this before? Thanks, Brian Abbott
Tomcat classpath problem
Apologies for the re-post, but I'm not sure if my messages are reaching the list. --- Hi, I'm trying to understand the tomcat class loading mechanism and have read through the Class Loader HOW-TO ( http://jakarta.apache.org/tomcat/tomcat-4.1-doc/class-loader-howto.html http://jakarta.apache.org/tomcat/tomcat-4.1-doc/class-loader-howto.html ). How does one make additional jars available to tomcat? I understand one can add them to WEB-INF/lib,but there are sometimes that approach does not work. Here's a scenario: I'm using tomcat 4.1.24 with jdk 1.4.1_02. One of the required libraries for my web app is oc4j.jar. If I put that oc4j.jar into the WEB-INF/lib, tomcat throws the following error on startup: = Starting service Tomcat-Standalone Apache Tomcat/4.1.24 WebappClassLoader: validateJarFile(D:\jakarta-tomcat-4.1.24\bin\..\webapps\graphics\WEB-INF\lib \oc4j.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class = Upon checking, I found oc4j.jar has javax.servlet.Servlet and I suspect it does not adhere to Servlet Spec 2.3 (but probably something earlier than that). If I do not put oc4j.jar in WEB-INF/lib, I get the following error: 2003-06-10 13:28:43 StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception javax.servlet.ServletException: javax.servlet.jsp.tagext.TagInfo.init(Ljava/lang/String;Ljava/lang/String; Ljava/lang/String;Ljava/lang/String;Ljavax/servlet/jsp/tagext/TagLibraryInfo ;Ljavax/servlet/jsp/tagext/TagExtraInfo;[Ljavax/servlet/jsp/tagext/TagAttrib uteInfo;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljavax/servle t/jsp/tagext/TagVariableInfo;)V at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249) at javax.servlet.http.HttpServlet.service(HttpServlet.java:336) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja va:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(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.ja va:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(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.invok eNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve. java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(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.invok eNext(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.processConne ction(Http11Protocol.java:392) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav a:619) at java.lang.Thread.run(Thread.java:536) Root cause is; java.lang.NoSuchMethodError: javax.servlet.jsp.tagext.TagInfo.init(Ljava/lang/String;Ljava/lang/String; Ljava/lang/String;Ljava/lang/String;Ljavax/servlet/jsp/tagext/TagLibraryInfo ;Ljavax/servlet/jsp/tagext/TagExtraInfo;[Ljavax/servlet/jsp/tagext/TagAttrib uteInfo;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljavax/servle t/jsp/tagext/TagVariableInfo;)V at org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoIm pl.java:385) (and a whole lot of lines) This above error stems from a particular tag library that I have written, and when tomcat tries
RE: Tomcat classpath problem
Howdy, How does one make additional jars available to tomcat? I understand one can add them to WEB-INF/lib,but there are sometimes that approach does not work. Here's a scenario: I'm using tomcat 4.1.24 with jdk 1.4.1_02. One of the required libraries for my web app is oc4j.jar. If I put that oc4j.jar into the WEB-INF/lib, tomcat throws the following error on startup: = Starting service Tomcat-Standalone Apache Tomcat/4.1.24 WebappClassLoader: validateJarFile(D:\jakarta-tomcat-4.1.24\bin\..\webapps\graphics\WEB- INF\lib \oc4j.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class The message is fairly clear: oc4j.jar is not acceptable in a Servlet Specification v2.3 container, because it contains a copy of the java servlet API. You need to re-package the oc4j jar, taking out the servlet classes, or obtain a later copy of the oc4j jar which does not contain the servlet classes. Generally speaking, the way to make more jars available to tomcat for your web application is to place these jars in the WEB-INF/lib directory of your web application. However, the jars can't contain the servlet APIs. Yoav Shapira This e-mail, including any attachments, is a confidential business communication, and may contain information that is confidential, proprietary and/or privileged. This e-mail is intended only for the individual(s) to whom it is addressed, and may not be saved, copied, printed, disclosed or used by anyone else. If you are not the(an) intended recipient, please immediately delete this e-mail from your computer system and notify the sender. Thank you. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Tomcat classpath problem
unpack your jar to WEB-INF/classes and remove javax/servlet tree. This will provide you with your classes without the conflicting servlet classes. Charlie -Original Message- From: Manav Gupta [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 10, 2003 10:58 AM To: Tomcat (E-mail) Subject: Tomcat classpath problem Apologies for the re-post, but I'm not sure if my messages are reaching the list. --- Hi, I'm trying to understand the tomcat class loading mechanism and have read through the Class Loader HOW-TO ( http://jakarta.apache.org/tomcat/tomcat-4.1-doc/class-loader-h owto.html http://jakarta.apache.org/tomcat/tomcat-4.1-doc/class-loader- howto.html ). How does one make additional jars available to tomcat? I understand one can add them to WEB-INF/lib,but there are sometimes that approach does not work. Here's a scenario: I'm using tomcat 4.1.24 with jdk 1.4.1_02. One of the required libraries for my web app is oc4j.jar. If I put that oc4j.jar into the WEB-INF/lib, tomcat throws the following error on startup: = Starting service Tomcat-Standalone Apache Tomcat/4.1.24 WebappClassLoader: validateJarFile(D:\jakarta-tomcat-4.1.24\bin\..\webapps\graphi cs\WEB-INF\lib \oc4j.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class = Upon checking, I found oc4j.jar has javax.servlet.Servlet and I suspect it does not adhere to Servlet Spec 2.3 (but probably something earlier than that). If I do not put oc4j.jar in WEB-INF/lib, I get the following error: 2003-06-10 13:28:43 StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception javax.servlet.ServletException: javax.servlet.jsp.tagext.TagInfo.init(Ljava/lang/String;Ljav a/lang/String; Ljava/lang/String;Ljava/lang/String;Ljavax/servlet/jsp/tagext/ TagLibraryInfo ;Ljavax/servlet/jsp/tagext/TagExtraInfo;[Ljavax/servlet/jsp/ta gext/TagAttrib uteInfo;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String; [Ljavax/servle t/jsp/tagext/TagVariableInfo;)V at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249) at javax.servlet.http.HttpServlet.service(HttpServlet.java:336) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilt er(Application FilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli cationFilterCh ain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardW rapperValve.ja va:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValv eContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipel ine.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardC ontextValve.ja va:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValv eContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipel ine.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContex t.java:2415) at org.apache.catalina.core.StandardHostValve.invoke(StandardHost Valve.java:180 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValv eContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDi spatcherValve. java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValv eContext.invok eNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport Valve.java:172 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValv eContext.invok eNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipel ine.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEn gineValve.java :174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValv eContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipel ine.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(Http11Process or.java:594) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandle r.processConne ction(Http11Protocol.java:392) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoi nt.java:565) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run( ThreadPool.jav a:619) at java.lang.Thread.run(Thread.java:536) Root cause is; java.lang.NoSuchMethodError