关于在WebLogic服务器上部署应用时错误的累积

来源:互联网 发布:淘宝链接被删除 编辑:程序博客网 时间:2024/05/20 00:14

先贴项目中所引入的jar包:

antlr-2.7.6.jar   aopalliance-1.0.jar  asm-3.1.jar aspectjrt-1.7.0.jar aspectjweaver-1.7.0.jar  axis-1.4.jar  backport-util-concurrent-3.1.jar  cglib-2.2.jar
com.aic.ruleapp-bom-1.0.0.jar  common-2.8.0-v20120911-0500.jar  commons-beanutils-1.8.0.jar  commons-codec-1.4.jar commons-collections-3.2.jar commons-dbcp-1.2.2.jar   commons-discovery-0.5.jar  commons-fileupload-1.2.1.jar  commons-httpclient-3.1.jar  commons-io-1.4.jar  commons-lang-2.4.jar   commons-logging-1.1.1.jar  commons-pool-1.3.jar  core-2.8.0-v20120911-0500.jar  cxf-api-2.4.4.jar  cxf-bundle-2.4.4.jar  cxf-bundle-jaxrs-2.4.4.jar  cxf-rt-bindings-soap-2.4.4.jar   cxf-rt-bindings-xml-2.4.4.jar    cxf-rt-core-2.4.4.jar   cxf-rt-databinding-jaxb-2.4.4.jar   cxf-rt-frontend-jaxrs-2.4.4.jar  cxf-rt-frontend-jaxws-2.4.4.jar    cxf-rt-frontend-simple-2.4.4.jar
cxf-rt-transports-http-2.4.4.jar   cxf-rt-transports-http-jetty-2.4.4.jar   cxf-rt-ws-addr-2.4.4.jar      cxf-rt-ws-policy-2.4.4.jar   dom4j-1.6.1.jar   ehcache-1.5.0.jar   ezmorph-1.0.6.jar   fluent-hc-4.2.1.jar  hibernate-commons-annotations-3.2.0.Final.jar   hibernate-core-3.6.9.Final.jar   hibernate-ehcache-3.6.1.Final.jar    hibernate-jpa-2.0-api-1.0.1.Final.jar     httpclient-4.5.2.jar    httpcore-4.4.4.jar   jackson-core-asl-1.9.9.jar   jackson-mapper-asl-1.9.9.jar   javamelody-core-1.31.0.jar    javassist-3.16.1-GA.jar
javax.ws.rs-api-2.0-m10.jar    javax.xml.rpc-10.0-b28.jar   javax.xml.soap-10.0-b28.jar    jcl-over-slf4j-1.6.4.jar     joda-time-1.5.1-RELEASE69.jar   joda-time-1.6.2.jar
jrobin-1.5.9.jar    jrules-engine-8.0.1.jar    jrules-language-8.0.1.jar    jrules-ruleartifacts-8.0.1.jar   jrules-teamserver-8.0.1.jar   json-4.10.jar   json-lib-2.2.2-jdk15.jar
json-lib-ext-spring-1.0.2.jar    jsr107cache-1.0.jar   jstl-1.2.jar    jta-1.1.jar   log4j-1.2.15.jar   logback-access-1.0.13.jar   logback-classic-1.0.13.jar   logback-core-1.0.13.jar
model-1.0.0.jar   myfaces-api-1.1.5.jar  neethi-3.0.2.jar  ojdbc6-11.2.0.1.0.jar      poi-3.9.jar    poi-ooxml-3.9.jar    poi-ooxml-schemas-3.9.jar     ruleapp-ins-ext-1.5.0.jar
slf4j-api-1.6.4.jar   spring-aop-3.1.3.RELEASE.jar   spring-asm-3.1.3.RELEASE.jar  spring-aspects-3.1.3.RELEASE.jar   spring-beans-3.1.3.RELEASE.jar
spring-context-3.1.3.RELEASE.jar    spring-context-support-3.1.3.RELEASE.jar    spring-core-3.1.3.RELEASE.jar    spring-expression-3.1.3.RELEASE.jar   spring-instrument-3.1.3.RELEASE.jar   spring-jdbc-3.1.3.RELEASE.jar    spring-orm-3.1.3.RELEASE.jar     spring-security-acl-3.1.0.RELEASE.jar   spring-security-config-3.1.0.RELEASE.jar   spring-security-core-3.1.0.RELEASE.jar   spring-security-crypto-3.1.0.RELEASE.jar   spring-security-taglibs-3.1.0.RELEASE.jar   spring-security-web-3.1.0.RELEASE.jar    spring-test-3.1.3.RELEASE.jar    spring-tx-3.1.3.RELEASE.jar     spring-web-3.1.3.RELEASE.jar     spring-webmvc-3.1.3.RELEASE.jar
wsdl4j-1.6.3.jar      wstx-asl-3.2.6.jar    xmi-2.8.0-v20120911-0500.jar   xmlschema-core-2.0.3.jar     xpp3-1.1.2a.jar     xpp3_min-1.1.4c.jar    xstream-1.3.1.jar     jsp-api.jar     servlet-api.jar    stax-api-1.0-2.jar    xmlbeans-2.3.0.jar

先贴一段报错信息:

####<Apr 7, 2017 4:08:30 PM CST> <Notice> <StdErr> <kf-ilog> <RuleServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1491552510747> <BEA-000000> <Apr 7, 2017 4:08:30 PM org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging
WARNING: Interceptor for {service.ruleapp.meyacom.com}RuleServiceService#{service.ruleapp.meyacom.com}execute has thrown exception, unwinding now
Throwable occurred: org.apache.cxf.interceptor.Fault: Unmarshalling Error: javax/xml/bind/Unmarshaller.unmarshal(Ljavax/xml/stream/XMLStreamReader;Ljava/lang/Class;)Ljavax/xml/bind/JAXBElement;
        at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:808)
        at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:642)
        at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:156)
        at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:109)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
        at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:797)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1626)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1493)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1401)
        at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
        at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:648)
        at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
        at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:533)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319)
        at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88)
        at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
        at $Proxy144.execute(Unknown Source)
        at com.meyacom.rule.web.controller.outinterface.rate.RateRuleOutInterfaceController.executionRateRule(RateRuleOutInterfaceController.java:184)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
        at java.lang.reflect.Method.invoke(Method.java:611)
        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:923)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at com.meyacom.rule.web.filter.SessionFilter.doFilter(SessionFilter.java:80)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at com.meyacom.rule.web.filter.SecurityFilter.doFilter(SecurityFilter.java:51)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at com.meyacom.rule.web.filter.UmAuthenticateFilter.doFilter(UmAuthenticateFilter.java:67)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: java.lang.VerifyError: javax/xml/bind/Unmarshaller.unmarshal(Ljavax/xml/stream/XMLStreamReader;Ljava/lang/Class;)Ljavax/xml/bind/JAXBElement;
        at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:778)
        ... 84 more>

以上报错信息关键点在于:

   java.lang.VerifyError: javax/xml/bind/Unmarshaller.unmarshal(Ljavax/xml/stream/XMLStreamReader;Ljava/lang/Class;)Ljavax/xml/bind/JAXBElement;
        at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:778)
        ... 84 more>

问题分析: java.lang.VerifyError的错误一般都是由于应用中jar吧冲突导致的,即两个不同的jar中存在一个同名(包括包名)的类,由于weblogic的类加载机制(可参考:http://docs.oracle.com/cd/E11035_01/wls100/programming/classloading.html)导致两个同名类的加载顺序不一致,在使用时可能使用了错误的类,所以会抛出校验错误。解决此类错误就需要找到是那些jar包里面有这个同名类。从报错中可以看出是org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall()方法往上抛出来的错误,该类位于cxf-rt-databinding-jaxb-2.4.4.jar中,查看源码不难发现是该方法的第一个参数Unmarshaller (javax.xml.bind.Unmarshaller(位于jdk的jar包中))在调用unmarshal()方法时报错,该方法需要的两个参数是(javax.xml.stream.XMLStreamReader,javax.xml.bind.JAXBElement ) 分别查看这两个类都是属于jdk的jar包中的类,但是由于javax.xml.stream.XMLStreamReader这个类在stax-api-1.0-2.jar也存在。由于该应用配置了优先加载war包中的jar包,导致stax-api-1.0-2.jar中的javax.xml.stream.XMLStreamReader被优先加载,所以此处就出了这个错。

解决方法: 由于本人环境的原因,直接暴露的剔除调了war包里面的stax-api-1.0-2.jar这个包。


0 0
原创粉丝点击