Tomcat tomee ExceptionInInitializerError和ThreadLocalProxy在类装入器中不可见

Tomcat tomee ExceptionInInitializerError和ThreadLocalProxy在类装入器中不可见,tomcat,cxf,jax-rs,apache-tomee,Tomcat,Cxf,Jax Rs,Apache Tomee,我使用ApacheTomee在Tomcat服务器上实现了CXF 我在启动时收到此错误消息 严重:调用org.apache.tomee.webservices时出错。TomeeJaxRsService@3b1c4405 java.lang.ExceptionInInitializeError 位于org.apache.openejb.server.cxf.rs.cxfrshtplistener.cxfrshttpplistener.java:134 位于org.apache.openejb.se

我使用ApacheTomee在Tomcat服务器上实现了CXF

我在启动时收到此错误消息

严重:调用org.apache.tomee.webservices时出错。TomeeJaxRsService@3b1c4405 java.lang.ExceptionInInitializeError 位于org.apache.openejb.server.cxf.rs.cxfrshtplistener.cxfrshttpplistener.java:134 位于org.apache.openejb.server.cxf.rs.CxfRSService.createHttpListenerCxfRSService.java:167 位于org.apache.openejb.server.rest.RESTService.deployApplicationRESTService.java:459 位于org.apache.openejb.server.rest.RESTService.afterApplicationCreatedRESTService.java:275 位于org.apache.tomee.webservices.tomeejaxrservice.afterApplicationCreatedTomejaxrService.java:53 在sun.reflect.NativeMethodAccessorImpl.invoke0Native方法中 位于sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:57 在sun.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43 位于java.lang.reflect.Method.invokeMethod.java:606 位于org.apache.openejb.observer.ObserverManager$MethodInvocation.invokeObserverManager.java:399 位于org.apache.openejb.observer.ObserverManager.doFireObserverManager.java:110 位于org.apache.openejb.observer.ObserverManager.fireventobservermanager.java:99 位于org.apache.openejb.loader.SystemInstance.fireEventSystemInstance.java:134 位于org.apache.tomee.catalina.TomcatWebAppBuilder.afterStartTomcatWebAppBuilder.java:1651 www.org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEventGlobalListenerSupport.java:116 位于org.apache.catalina.util.LifecycleSupport.fireLifecycleEventLifecycleSupport.java:117 位于org.apache.catalina.util.LifecycleBase.fireLifecycleEventLifecycleBase.java:90 位于org.apache.catalina.util.LifecycleBase.setStateInternalLifecycleBase.java:402 位于org.apache.catalina.util.LifecycleBase.startIFecyclebase.java:168 位于org.apache.catalina.core.ContainerBase.addChildInternalContainerBase.java:901 位于org.apache.catalina.core.ContainerBase.addChildContainerBase.java:877 位于org.apache.catalina.core.StandardHost.addChildStandardHost.java:649 位于org.apache.tomee.catalina.TomcatWebAppBuilder.deployWarTomcatWebAppBuilder.java:648 位于org.apache.tomee.catalina.TomcatWebAppBuilder.deploywebappstomcatweappbuilder.java:618 位于org.apache.tomee.catalina.deployment.TomcatWebappDeployer.deployTomcatWebappDeployer.java:43 位于org.apache.openejb.assembler.DeployerEjb.DeployerEjb.java:175 在sun.reflect.NativeMethodAccessorImpl.invoke0Native方法中 位于sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:57 在sun.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43 位于java.lang.reflect.Method.invokeMethod.java:606 位于org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invokeReflectionInvocationContext.java:192 位于org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceedReflectionInvocationContext.java:173 位于org.apache.openejb.security.internal.InternalSecurityInterceptor.invokeInternalSecurityInterceptor.java:35 在sun.reflect.NativeMethodAccessorImpl.invoke0Native方法中 位于sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:57 在sun.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43 位于java.lang.reflect.Method.invokeMethod.java:606 位于org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invokeReflectionInvocationContext.java:192 位于org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceedReflectionInvocationContext.java:173 位于org.apache.openejb.monitoring.statistInterceptor.RecordStatistInterceptor.java:181 位于org.apache.openejb.monitoring.statInterceptor.invokeStatInterceptor.java:100 在sun.reflect.NativeMethodAccessorImpl.invoke0Native方法中 位于sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:57 在sun.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43 位于java.lang.reflect.Method.invokeMethod.java:606 位于org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invokeReflectionInvocationContext.java:192 位于org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceedReflectionInvocationContext.java:173 位于org.apache.openejb.core.interceptor.InterceptorStack.invokeInterceptorStack.java:85 位于org.apache.openejb.core.stateless.StatelessContainer.\u invokeStatelessContainer.java:227 位于org.apache.openejb.core.stateless.StatelessContainer.invokeStatelessContainer.java:194 位于org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject\u BUSINESS\u METHODEjbRequestHandler.java:370 位于org.apache.openejb.server.ejbd.EjbRequestHandler.processRequestEjbRequestHandler.java:181 位于org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequestEjbDaemon.java:344 位于org.apache.openejb.server.ejbd.EjbDaemon.servicejbdaemon.java:240 位于org.apache.openejb.server.ejbd.EjbServer.serviceEjbServer.java:86 在org.apa che.openejb.server.httpd.ServerServlet.serviceServerServlet.java:58 位于javax.servlet.http.HttpServlet.serviceHttpServlet.java:727 位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilterApplicationFilterChain.java:303 位于org.apache.catalina.core.ApplicationFilterChain.doFilterApplicationFilterChain.java:208 位于org.apache.catalina.core.StandardWrapperValve.invokeStandardWrapperValve.java:220 位于org.apache.catalina.core.StandardContextValve.invokeStandardContextValve.java:122 位于org.apache.tomee.catalina.OpenEJBValve.invokePenejbvalve.java:44 位于org.apache.catalina.core.StandardHostValve.invokeStandardHostValve.java:171 在org.apache.catalina.valves.ErrorReportValve.InvokeerErrorReportValve.java:103 位于org.apache.catalina.valves.AccessLogValve.invokeAccessLogValve.java:950 位于org.apache.catalina.core.StandardEngineValve.invokeStandardenginievalve.java:116 位于org.apache.catalina.connector.CoyoteAdapter.serviceCoyoteAdapter.java:408 位于org.apache.coyote.http11.AbstractHttp11Processor.processAbstractHttp11Processor.java:1070 位于org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.processAbstractProtocol.java:611 位于org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.runJIoEndpoint.java:316 位于java.util.concurrent.ThreadPoolExecutor.runWorkerThreadPoolExecutor.java:1145 位于java.util.concurrent.ThreadPoolExecutor$Worker.runThreadPoolExecutor.java:615 位于org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.runTaskThread.java:61 java:745 原因:java.lang.IllegalArgumentException:interface org.apache.cxf.jaxrs.impl.tl.ThreadLocalProxy在类加载器中不可见 在java.lang.reflect.Proxy$ProxyClassFactory.applyProxy.java:616 在java.lang.reflect.Proxy$ProxyClassFactory.applyProxy.java:592 位于java.lang.reflect.WeakCache$Factory.getWeakCache.java:244 位于java.lang.reflect.WeakCache.getWeakCache.java:141 位于java.lang.reflect.Proxy.getProxyClass0Proxy.java:455 位于java.lang.reflect.Proxy.newProxyInstanceProxy.java:738 位于org.apache.cxf.jaxrs.utils.InjectionUtils.createThreadLocalProxyInjectionUtils.java:905 位于org.apache.cxf.jaxrs.model.AbstractResourceInfo.addContextMethodAbstractResourceInfo.java:167 位于org.apache.cxf.jaxrs.model.AbstractResourceInfo.checkContextMethodAbstractResourceInfo.java:150 位于org.apache.cxf.jaxrs.model.AbstractResourceInfo.findContextSetterMethodsAbstractResourceInfo.java:132 位于org.apache.cxf.jaxrs.model.AbstractResourceInfo.AbstractResourceInfo.java:65 位于org.apache.cxf.jaxrs.model.ProviderInfo.ProviderInfo.java:29 位于org.apache.cxf.jaxrs.provider.ProviderFactory.initJaxbProvidersProviderFactory.java:131 位于org.apache.cxf.jaxrs.provider.ProviderFactory.ProviderFactory.java:120 位于org.apache.cxf.jaxrs.provider.ProviderFactory.getInstanceProviderFactory.java:161 位于org.apache.cxf.jaxrs.provider.ProviderFactory.ProviderFactory.java:73
... 74更多当您在初始化时发生的任何stacktrace中看到以下区块时:

Caused by: java.lang.IllegalArgumentException: interface org.apache.cxf.jaxrs.impl.tl.ThreadLocalProxy is not visible from class loader
    at java.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:580)
    at java.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:556)
    at java.lang.reflect.WeakCache$Factory.get(WeakCache.java:230)
    at java.lang.reflect.WeakCache.get(WeakCache.java:127)
    at java.lang.reflect.Proxy.getProxyClass0(Proxy.java:418)
    at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:717)
    at org.apache.cxf.jaxrs.utils.InjectionUtils.createThreadLocalProxy(InjectionUtils.java:905)
    at org.apache.cxf.jaxrs.model.AbstractResourceInfo.addContextMethod(AbstractResourceInfo.java:167)
    at org.apache.cxf.jaxrs.model.AbstractResourceInfo.checkContextMethod(AbstractResourceInfo.java:150)
    at org.apache.cxf.jaxrs.model.AbstractResourceInfo.findContextSetterMethods(AbstractResourceInfo.java:132)
    at org.apache.cxf.jaxrs.model.AbstractResourceInfo.<init>(AbstractResourceInfo.java:65)
    at org.apache.cxf.jaxrs.model.ProviderInfo.<init>(ProviderInfo.java:29)
    at org.apache.cxf.jaxrs.provider.ProviderFactory.initJaxbProviders(ProviderFactory.java:131)
    at org.apache.cxf.jaxrs.provider.ProviderFactory.<init>(ProviderFactory.java:120)
    at org.apache.cxf.jaxrs.provider.ProviderFactory.getInstance(ProviderFactory.java:161)
    at org.apache.cxf.jaxrs.provider.ProviderFactory.<clinit>(ProviderFactory.java:73)
    ... 29 more
很有可能您的webapp中有一个CXF库的副本。如果是这样的话,你肯定会想删除它们

CXF使用一个静态变量来执行某些重要的跟踪。当webapp和服务器中有一个类的副本保存该静态时,webapp中的副本将有效地隐藏服务器中的副本-Java中的静态在类加载器中确定范围

从webapp中删除CXF副本(如果有),您应该进一步了解