【发布时间】:2017-11-20 07:47:35
【问题描述】:
我有一个在 Tomcat 8 上运行的 Web 应用程序(Windows 10,JRE 1.8.0_111) 实现 REST 客户端以与第 3 部分 REST 服务进行通信 (ADLNET xAPI LRS)
当我最近将该 WAR 文件部署到不同的服务器(CentOS、Tomcat 8、Java 1.8.0.11)应用程序给出ClassNotFound异常:
java.lang.ClassNotFoundException: org.glassfish.hk2.utilities.reflection.Logger
我在 WEB-INF/lib 文件夹中有以下 JAR
*jxapi-1.0.3.jar(由 ADLNET xAPI 项目提供) *hk2-api-2.4.0.jar *cxf-bundle-jaxrs-2.7.18.jar *jaxrs-ri-2.25.1.jar *jersey-guava-2.25.1.jar
在使用“-verbose:class”运行应用程序时,我发现两种情况下的类加载顺序不同。在错误情况下, 'cxf-bundle-jaxrs-2.7.18.jar' 根本没有被使用。
catalina.out(正常情况下)
…… [从文件加载 org.glassfish.jersey.client.JerseyWebTarget:/C:/Users/Diptendu/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/LearnITyLMSv9/WEB-INF/ lib/jaxrs-ri-2.25.1.jar] [从文件加载 javax.ws.rs.core.UriBuilder:/C:/Users/Diptendu/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/LearnITyLMSv9/WEB-INF/ lib/jaxrs-ri-2.25.1.jar] [从文件加载 javax.ws.rs.ext.RuntimeDelegate:/C:/Users/Diptendu/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/LearnITyLMSv9/WEB-INF/ lib/jaxrs-ri-2.25.1.jar] [从文件加载 javax.ws.rs.ext.FactoryFinder:/C:/Users/Diptendu/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/LearnITyLMSv9/WEB-INF/ lib/jaxrs-ri-2.25.1.jar] [从文件加载 javax.ws.rs.ext.FactoryFinder$1:/C:/Users/Diptendu/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/LearnITyLMSv9/WEB-INF /lib/jaxrs-ri-2.25.1.jar] [从文件加载 org.apache.cxf.jaxrs.impl.RuntimeDelegateImpl:/C:/Users/Diptendu/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/LearnITyLMSv9/WEB- INF/lib/cxf-bundle-jaxrs-2.7.18.jar] [从文件加载 javax.ws.rs.core.Variant$VariantListBuilder:/C:/Users/Diptendu/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/LearnITyLMSv9/WEB- INF/lib/jaxrs-ri-2.25.1.jar] [从文件加载 org.apache.cxf.jaxrs.impl.VariantListBuilderImpl:/C:/Users/Diptendu/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/LearnITyLMSv9/WEB- INF/lib/cxf-bundle-jaxrs-2.7.18.jar] [从文件加载 javax.ws.rs.core.Response$ResponseBuilder:/C:/Users/Diptendu/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/LearnITyLMSv9/WEB- INF/lib/jaxrs-ri-2.25.1.jar] ......
catalina.out(错误情况)
…… [从文件加载 org.glassfish.jersey.client.JerseyWebTarget:/opt/tomcat8/webapps/LearnITyAcademy/WEB-INF/lib/jaxrs-ri-2.25.1.jar] 信息 |虚拟机 1 | 2017/06/17 17:56:50 | [从文件加载 javax.ws.rs.core.UriBuilder:/opt/tomcat8/webapps/LearnITyAcademy/WEB-INF/lib/jaxrs-ri-2.25.1.jar] 信息 |虚拟机 1 | 2017/06/17 17:56:50 | [从文件加载 javax.ws.rs.ext.RuntimeDelegate:/opt/tomcat8/webapps/LearnITyAcademy/WEB-INF/lib/jaxrs-ri-2.25.1.jar] 信息 |虚拟机 1 | 2017/06/17 17:56:50 | [从文件加载 javax.ws.rs.ext.FactoryFinder:/opt/tomcat8/webapps/LearnITyAcademy/WEB-INF/lib/jaxrs-ri-2.25.1.jar] 信息 |虚拟机 1 | 2017/06/17 17:56:50 | [从文件加载 javax.ws.rs.ext.FactoryFinder$1:/opt/tomcat8/webapps/LearnITyAcademy/WEB-INF/lib/jaxrs-ri-2.25.1.jar] 信息 |虚拟机 1 | 2017/06/17 17:56:50 | [从文件加载 org.glassfish.jersey.internal.AbstractRuntimeDelegate:/opt/tomcat8/webapps/LearnITyAcademy/WEB-INF/lib/jaxrs-ri-2.25.1.jar] 信息 |虚拟机 1 | 2017/06/17 17:56:50 | [从文件加载 org.glassfish.jersey.server.internal.RuntimeDelegateImpl:/opt/tomcat8/webapps/LearnITyAcademy/WEB-INF/lib/jaxrs-ri-2.25.1.jar] 信息 |虚拟机 1 | 2017/06/17 17:56:50 | [从文件加载 org.glassfish.jersey.uri.internal.JerseyUriBuilder:/opt/tomcat8/webapps/LearnITyAcademy/WEB-INF/lib/jaxrs-ri-2.25.1.jar] 信息 |虚拟机 1 | 2017/06/17 17:56:50 | [从文件加载 javax.ws.rs.core.Response$ResponseBuilder:/opt/tomcat8/webapps/LearnITyAcademy/WEB-INF/lib/jaxrs-ri-2.25.1.jar] 信息 |虚拟机 1 | 2017/06/17 17:56:50 | [从文件加载 org.glassfish.jersey.message.internal.OutboundJaxrsResponse$Builder:/opt/tomcat8/webapps/LearnITyAcademy/WEB-INF/lib/jaxrs-ri-2.25.1.jar] 信息 |虚拟机 1 | 2017/06/17 17:56:50 |
这里可能出了什么问题?
【问题讨论】: