tomcat - 将 servlet jar 文件放在 Tomcat 6 中的什么位置?

标签 tomcat servlets classpath tomcat6

我在 jar 文件中有一个 servlet,我想将其部署到我的 Tomcat 6 实例。我做了以下事情:

  1. 在我的根 web.xml 中添加了一个 servlet 声明
  2. 在根 web.xml 中添加了一个 servlet 映射
  3. 将我的jar文件放在/tomcat/lib
  4. 重新启动我的服务器

当我指向我的 servlet 时出现以下错误

javax.servlet.ServletException: Wrapper cannot find servlet class com.mypackage.myServlet or a class it depends on
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    java.lang.Thread.run(Unknown Source)

root cause

java.lang.ClassNotFoundException: com.mypackage.myServlet
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    java.lang.Thread.run(Unknown Source)

这告诉我我的 web.xml 配置正确并且我成功地找到了正确的 URL 模式。所以问题是……我应该将 servlet jar 文件放在 Tomcat 6 中的什么位置,以便在 CLASSPATH 中获取它?

TIA

最佳答案

您的 servlet JAR 文件位于 WAR 的 lib 目录中,而不是位于顶级 Tomcat lib 目录中,即

<war-root>
   /WEB-INF
      web.xml
   /lib
      myservlet.jar

关于tomcat - 将 servlet jar 文件放在 Tomcat 6 中的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5160113/

相关文章:

java - 在java中的测试类中没有得到响应

java - 如何让 tomcat 从我的 Mac 键盘上理解 MacRoman (x-mac-roman) 字符集?

java - 在命令行运行java程序,我做错了什么?

tomcat - 将 OSGi 嵌入 servlet 容器或 OSGi 中的 servlet 容器?

Java Spring Controller 未被映射

tomcat - HTTP参数编码

javascript - 浏览器控制台出现错误 :The character encoding of the plain text document was not declared

ruby-on-rails - ruby rails 4.2.0 : How to find the directories set for loading libraries etc

java - 从 Maven 项目资源文件夹 (src/main/resources) 加载 excel(.xlsx/.xls) 文件

java - servlet 中的流刷新 - 它会提高 tomcat 服务器端性能吗?