2016-08-22 4 views
1

Iv сталкивается с ошибкой, которая, как представляется, случается чаще с людьми, но источник отличается по множеству причин. После развертывания проекта на сервере, где тестеры могут его протестировать, в некоторых местах при выполнении задачи в приложении эта ошибка появляется < NoClassDefFoundError>.NoClassDefFoundError при развертывании на сервере QA

Теперь я читал много в Интернете, для некоторых людей это случается, потому что есть некоторая совпадение с баночкой, потому что у них нет определенных разрешений в их среде, некоторые из них не имеют некоторых зависимостей. Но, похоже, это так.

Или я просто расстраиваюсь, я не уверен, чтобы быть честным. Поэтому в надежде, что кто-то увидит что-то в трассировке стека, которое, возможно, пропустило мое зрение или что-то, что я обратился к Stack Overflow в надежде на спасение ....

Теперь я знаю, что этот класс находится в < jaxb-api > jar. В проекте pom его набор должен использовать версию 2.2.2. Я даже декомпилировал банку, используя онлайн-декомпилятор, чтобы проверить банку. Класс существует. И в моей локальной среде он отлично работает. Это происходит только после развертывания на сервере.

Заранее спасибо! И извините, если мой вопрос неясен, я отредактирую его, чтобы сделать его более ясным, если это может быть так.

Трассировка стека выглядит следующим образом:

java.lang.NoClassDefFoundError: com/sun/xml/bind/DatatypeConverterImpl$CalendarFormatter 
    at com.sun.xml.bind.DatatypeConverterImpl._printDate(DatatypeConverterImpl.java:482) 
    at com.sun.xml.bind.DatatypeConverterImpl.printDate(DatatypeConverterImpl.java:478) 
    at javax.xml.bind.DatatypeConverter.printDate(DatatypeConverter.java:680) 
    at org.w3._2001.xmlschema.Adapter1.marshal(Adapter1.java:20) 
    at org.w3._2001.xmlschema.Adapter1.marshal(Adapter1.java:7) 
    at com.sun.xml.bind.v2.runtime.reflect.AdaptedAccessor.get(AdaptedAccessor.java:72) 
    at com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$CompositeTransducedAccessorImpl.writeLeafElement(TransducedAccessor.java:252) 
    at com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.serializeBody(SingleElementLeafProperty.java:121) 
    at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:157) 
    at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:189) 
    at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:316) 
    at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:323) 
    at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:72) 
    at com.sun.xml.bind.v2.runtime.property.SingleReferenceNodeProperty.serializeBody(SingleReferenceNodeProperty.java:111) 
    at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:340) 
    at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696) 
    at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:152) 
    at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:340) 
    at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696) 
    at com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.serializeItem(ArrayElementNodeProperty.java:65) 
    at com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:168) 
    at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:155) 
    at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:340) 
    at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696) 
    at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:152) 
    at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:340) 
    at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696) 
    at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:152) 
    at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:340) 
    at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696) 
    at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:264) 
    at com.sun.xml.bind.v2.runtime.BridgeImpl.marshal(BridgeImpl.java:100) 
    at com.sun.xml.bind.api.Bridge.marshal(Bridge.java:141) 
    at com.sun.xml.ws.message.jaxb.JAXBMessage.writePayloadTo(JAXBMessage.java:321) 
    at com.sun.xml.ws.message.AbstractMessageImpl.writeTo(AbstractMessageImpl.java:142) 
    at com.sun.xml.ws.encoding.StreamSOAPCodec.encode(StreamSOAPCodec.java:109) 
    at com.sun.xml.ws.encoding.SOAPBindingCodec.encode(SOAPBindingCodec.java:284) 
    at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:146) 
    at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:94) 
    at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:89) 
    at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:598) 
    at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:557) 
    at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:542) 
    at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:439) 
    at com.sun.xml.ws.client.Stub.process(Stub.java:222) 
    at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:135) 
    at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:109) 
    at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89) 
    at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118) 
    at com.sun.proxy.$Proxy653.majQuittances(Unknown Source) 
    at com.satec.dao.winpass.WinpassPolicyDAO.submitQuittance(WinpassPolicyDAO.java:45) 
    at com.satec.service.WinpassService.submitPolicyLifecycle(WinpassService.java:505) 
    at com.satec.service.WinpassService.submitPolicyLifecycle(WinpassService.java:330) 
    at com.satec.service.WinpassHelper.submitPolicyLifecycle(WinpassHelper.java:96) 
    at com.satec.manager.SANewPolicyAvoidanceBP.executeAvoidance(SANewPolicyAvoidanceBP.java:51) 
    at com.satec.manager.SANewPolicyAvoidanceBP.save(SANewPolicyAvoidanceBP.java:70) 
    at com.satec.manager.SANewPolicyAvoidanceBP$$FastClassByCGLIB$$54f56c86.invoke(<generated>) 
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191) 
    at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:688) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) 
    at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:67) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621) 
    at com.satec.manager.SANewPolicyAvoidanceBP$$EnhancerByCGLIB$$539f001e.save(<generated>) 
    at com.albiran.ser.newPolicyAvoidance.NewPolicyAvoidanceServlet.handleBusinessRequest(NewPolicyAvoidanceServlet.java:64) 
    at com.albiran.ser.commun.AjaxTransaction.handleBusinessRequest(AjaxTransaction.java:17) 
    at com.albiran.ser.commun.AjaxTransaction$$FastClassByCGLIB$$46480d71.invoke(<generated>) 
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191) 
    at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:688) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) 
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621) 
    at com.albiran.ser.commun.AjaxTransaction$$EnhancerByCGLIB$$9840595b.handleBusinessRequest(<generated>) 
    at com.albiran.ser.commun.AjaxServlet.executeMethod(AjaxServlet.java:208) 
    at com.albiran.ser.commun.AjaxServlet.handleBusinessRequest(AjaxServlet.java:444) 
    at com.albiran.ser.commun.AjaxServlet.service(AjaxServlet.java:576) 
    at sun.reflect.GeneratedMethodAccessor2997.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) 
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436) 
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669) 
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:585) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:369) 
    at com.albiran.framework.license.LicenseCheckingFilter.doFilter(LicenseCheckingFilter.java:59) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) 
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) 
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) 
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) 
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) 
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) 
    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) 
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) 
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) 
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) 
    at com.albiran.acces.data.acces.AlbiranSessionRequestFilter.doFilter(AlbiranSessionRequestFilter.java:64) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) 
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) 
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:168) 
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) 
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) 
    at com.albiran.framework.license.LicenseCheckingFilter.doFilter(LicenseCheckingFilter.java:59) 
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) 
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528) 
    at org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:872) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Thread.java:745) 
+0

Какую версию Tomcat вы используете? JDK? На этом тестовом сервере развернуто любое другое приложение? Если это так, может ли любое другое существующее приложение иметь другую версию этого jar/class, загруженного до этого? – jlumietu

+0

Исключение NoClassDefFoundError и его причины очень ясны, но чтобы выяснить причину в вашем случае. Требуется дополнительная информация, например, информация об окружающей среде, когда она вызывается как часть обычного вызова метода или как часть создания нового экземпляра. –

+0

Сервер Jetty, и мы используем JDK 1.7.И мне жаль, кажется, я забыл первую строку ошибки. И да, это единственное, что работает на сервере. –

ответ

1

Это важно понимать, что JAXB поставляется с JDK, если вы используете Java 6 или новее.

Как правило, вы никогда не включили JAXB API-банки или реализации JAXB в свои файлы pom.xml, потому что у вас уже есть доступ к ним через JDK. Это может привести к возникновению особых проблем с загрузкой классов, таких как те, которые вы описываете.

Если нужно использовать JAXB 2.2, то вы должны построить и выполнить код с помощью Java 8.

Java 6 и 7 поставляются с JAXB 2.1.

Теперь, выше, не верно, если ваш код работает в полный стек Java EE 6 (или более поздней версии) сервера, такие как WildFly, GlassFish, TomEE и т.д.

Эти спецификации поручено обеспечить должным образом интегрированная реализация JAXB 2.2.

В этой ситуации вы можете построить против API JAXB 2.2. Вы все равно должны исключать любые реализации.

Если вы хотите использовать что-то вроде Tomcat с JAXB 2.2, то вам необходимо установить реализацию JAXB 2.2 в Tomcat, используя его endorsed каталог описано в Class Loader HOW-TO, который построен на Java Endorsed Standards Override Mechanism. Аналогичное решение также потребуется для Jetty.

Смежные вопросы