0

尝试在 MyEclipseBlue 中的 WAS 8.5 上部署 EAR 时出现以下错误。有人可以帮忙吗?我尝试将类加载器顺序从父级更改为第一个,在 web.xml 中设置 metadata-complete="true" ,创建新配置文件并重新安装 WAS 。似乎没有任何效果。请在下面找到控制台日志。

[9/17/16 16:03:06:548 IST] 00000001 ContainerHelp E   WSVR0501E: Error creating component com.ibm.ws.runtime.component.CompositionUnitMgrImpl@acf57ca5
com.ibm.ws.exception.RuntimeWarning: com.ibm.ws.webcontainer.exception.WebAppNotLoadedException: Failed to load webapp: Failed to load webapp: loading constraint violation: loader &quot&#59;com/ibm/ws/classloader/CompoundClassLoader@a74d2eab&quot&#59; previously initiated loading for a different type with name &quot&#59;javax/servlet/ServletContext&quot&#59; defined by loader &quot&#59;org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader@d19a0410&quot&#59;
    at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:432)
    at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:718)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1170)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1370)
    at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:638)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:968)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:769)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2172)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:445)
    at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:388)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$500(CompositionUnitMgrImpl.java:116)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:994)
    at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:349)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1783)
Caused by: com.ibm.ws.webcontainer.exception.WebAppNotLoadedException: Failed to load webapp: Failed to load webapp: loading constraint violation: loader &quot&#59;com/ibm/ws/classloader/CompoundClassLoader@a74d2eab&quot&#59; previously initiated loading for a different type with name &quot&#59;javax/servlet/ServletContext&quot&#59; defined by loader &quot&#59;org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader@d19a0410&quot&#59;
    at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:759)
    at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:634)
    at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:426)
    ... 14 more
Caused by: com.ibm.ws.webcontainer.exception.WebAppNotLoadedException: Failed to load webapp: loading constraint violation: loader "com/ibm/ws/classloader/CompoundClassLoader@a74d2eab" previously initiated loading for a different type with name "javax/servlet/ServletContext" defined by loader "org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader@d19a0410"
    at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:176)
    at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:749)
    ... 16 more
Caused by: java.lang.LinkageError: loading constraint violation: loader "com/ibm/ws/classloader/CompoundClassLoader@a74d2eab" previously initiated loading for a different type with name "javax/servlet/ServletContext" defined by loader "org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader@d19a0410"
    at java.lang.ClassLoader.defineClassImpl(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:262)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:69)
    at com.ibm.ws.classloader.CompoundClassLoader._defineClass(CompoundClassLoader.java:852)
    at com.ibm.ws.classloader.CompoundClassLoader.localFindClass(CompoundClassLoader.java:762)
    at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:603)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:627)
    at com.sun.xml.ws.transport.http.servlet.WSServletContainerInitializer.onStartup(WSServletContainerInitializer.java:61)
    at com.ibm.ws.webcontainer.webapp.WebAppImpl.initializeServletContainerInitializers(WebAppImpl.java:613)
    at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:409)
    at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88)
    at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:169)
    ... 17 more
4

1 回答 1

1

您可能已经在应用程序中打包了 servlet API,因此您应该删除它。FWIW,除非您的应用程序或模块类加载器设置为“最后一个父级”,否则基本上不可能得到这样的 LinkageError。如果您确实从 parent last 更改为 parent first 并且仍然看到一些错误,我怀疑它与您在此处包含的错误不同。

于 2016-09-19T14:03:39.797 回答