1

我正在尝试将 Java Web 服务部署到 Tomcat 5.5.20 服务器中。我将 Web 服务打包在 Tomcat 的 webapps 目录中的 .war 文件中,我可以看到当我启动 Tomcat 时 .war 文件被提取。

但是,当我启动 Tomcat 时出现以下错误:

2012 年 4 月 22 日上午 5:16:31 com.sun.xml.ws.transport.http.servlet.WSServletContextLstener contextInitialized
信息:WSSERVLET12:JAX-WS 上下文侦听器正在初始化
2012 年 4 月 22 日上午 5:16:31 com.sun.xml.ws.transport.http.servlet.WSServletContextLstener parseAdaptersAndCreateDelegate
严重:WSSERVLET11:无法解析运行时描述符:java.lang.LinkageError:正在从引导类加载器加载 JAXB 2.1 API,但是这个 RI(来自 jar:file:/home/username/WebNMS/apache/tomcat/webapps/WebServices /WEB-INF/lib/jaxb-impl.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) 需要 2.2 API。使用认可的目录机制将 jaxb-api.jar 放置在引导类加载器中。(参见 http://java.sun.com/j2se/1.6.0/docs/guide/standards/)
java.lang.LinkageError: JAXB 2.1 API 正在从引导类加载器加载,但是这个 RI(来自 jar:file:/home/username/WebNMS/apache/tomcat/webapps/WebServices/WEB-INF/lib/jaxb-impl .jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) 需要 2.2 API。使用认可的目录机制将 jaxb-api.jar 放置在引导类加载器中。(参见 http://java.sun.com/j2se/1.6.0/docs/guide/standards/)
在 com.sun.xml.bind.v2.model.impl.ModelBuilder.(ModelBuilder.java:178)

/home/username/WebNMS/apache/tomcat/webapps/WebServices/WEB-INF/lib 目录是 JAX-WS 2.2.6 中的所有 jar 文件所在的位置,包括 jaxb-api.jar。

我已经在启动 Tomcat 的 WebNMS 进程的命令中添加了“-Djava.endorsed.dirs=/home/username/WebNMS/apache/tomcat/webapps/WebServices/WEB-INF/lib”,但这没有帮助.

此外,我尝试在 /home/username/WebNMS/jre/lib 目录中添加一个名为“endorsed”的符号链接,该链接指向 /home/username/WebNMS/apache/tomcat/webapps/WebServices/WEB-INF/lib,并且那也没有帮助。

一件有趣的事情是,当我执行“查找 /home/username/WebNMS -name jaxb-api.jar”时,它只会在 /home/username/WebNMS/apache/tomcat/webapps 中找到一个 jaxb-api.jar /WebServices/WEB-INF/lib 目录。没有其他 jaxb-api.jar 文件。所以我不知道为什么错误说正在加载 JAXB 2.1 API,而只有 JAXB 2.2.6 API jar 文件。除非它在 ​​/home/username/WebNMS 目录之外找到了一些东西,但考虑到我尝试了 2 种不同的方法来设置认可的目录,这不应该发生。

4

0 回答 0