1

为 IBM 在 Java 中的集成添加了 2 个 jar 文件。得到这个例外:

error at :: BarFile b = BarFile.loadBarFile("C:\\Users\\Uni\\Desktop\\outputt\\Dev_BAR.bar");

root cause:::::::::

java.lang.ClassNotFoundException: com.ibm.broker.config.proxy.BarFile
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
com.cts.XmlExtract.extract(XmlExtract.java:25)
com.cts.BrokerServlet.doGet(BrokerServlet.java:30)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
4

1 回答 1

2

使用 IDE(可能是 IBM 的 RAD 或 Eclipse)开发 Java 项目时,重要的是要记住有两个您关心的类路径:

  1. 编写代码时的类路径。这是编译类路径。
  2. 在服务器上运行代码时的类路径。这是运行时类路径。

您收到的错误正在发生,因为运行时类路径不包含您尝试添加到项目中的一个(或两个)jar。

您可以使用以下技术之一将 jar 添加到运行时类路径:

  1. 将 jar 添加到 Web 应用项目中的 WEB-INF/libs 目录。这种技术保证 jar 将与您的 WAR 文件一起分发,但也保证该 jar 不会被可能想要使用该 jar 的其他项目共享。

  2. 如果您正在构建 EAR,请将 jar 添加到 EAR 文件中。自从我建立一个耳朵已经有一段时间了,所以我不记得确切的目录名称(我想你只是在它的 EAR 的根目录)。这允许 EAR 中的 WAR 文件共享 jar。

  3. 将 jar 添加到您的 tomcat 中的共享位置。$CATALINA_HOME/lib 似乎是个好地方。这允许该 tomcat 实例中的所有 Web 应用程序共享该 jar。

  4. 其他。其他服务器提供其他方式来共享一个 jar。

于 2013-09-11T17:56:04.543 回答