【问题标题】:Where do I put jar files in Tomcat 6?我在 Tomcat 6 中的哪里放置 jar 文件?
【发布时间】:2011-01-06 19:44:26
【问题描述】:

我无法让我的 JSP 页面加载 jar 文件中的 Java 类。我收到的消息似乎表明找不到类异常:

Jan 6, 2011 12:21:45 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 72 in the jsp file: /xmlloader.jsp
FactArray cannot be resolved to a type
69:         sourceType = "1";
70: }
71: 
72: FactArray fa = new FactArray();
73: Fact f;
74: 
75: /***********************/

FactArray 类型是我在 myjar.jar 中存在的 com.mypackage.fact.FactArray 包中的类之一。 myjar.jar 是一个单独的 Java 项目(使用 NetBeans,但我认为这无关紧要)。

我在我的 JSP 中包含以下包:

<%@ page import="com.mypackage.fact.*" %>

我将我的网站和 JSP 作为 WAR 文件部署到 Tomcat 6 中。我将 myjar.jar 包含在 WEB-INF/lib 的那个 WAR 中,但这不起作用。我尝试将 myjar.jar 放在我的 tomcat/lib 文件夹中,但这也不起作用。

我在更改之间多次退回服务器。我在这里阅读了一大堆问题,上面写着“把它放在 WEB-INF/lib 中”,但这不起作用,所以我在问我自己的问题。

我需要将常见的 JAR 文件放在哪里,以便它们被 Tomcat 拾取?

【问题讨论】:

  • 我希望这段代码放在它的声明之前&lt;%@ page import="com.mypackage.fact.*" %&gt;
  • 是的,代码前声明...

标签: java jsp jar tomcat6


【解决方案1】:

放入已部署的 webapp 的 /WEB-INF/lib 文件夹应该可以工作。

如果这不起作用,那么可能的原因是:

  • JAR 根本不包含所需的类(使用 ZIP 工具提取并验证)
  • 您的导入和/或类声明中有错字(注意区分大小写!)

与问题无关,使用 scriptlets 并不是最佳实践。考虑servlet

【讨论】:

  • 嗯,这是一个有趣的评论。你能说一下为什么你认为我有一个 scriptlet(我以为我有一个 servlet)。
  • ...等等,我明白了...但它仍然很有趣。但现在我认为我有一个知识差距。除了那个 scriptlet,我还能做什么?
  • 我的tomcat也有同样的问题。您的解决方案对我有用,谢谢
【解决方案2】:

确保代码中有正确的导入语句;根据您设置环境的方式,将罐子放在 webapps/ROOT/lib 中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多