2014-02-25 28 views
1

我在下面的项目设置中有一个类加载问题:我们的EAR包含多个WAR,其中两个是相关的,我们称它们为web和ejb。我们正在使用Websphere 8. 现在,ejb.war包含许多Web服务,其中一个是新开发的,ejb.war中的一些类实际上由axis2生成。 为了调用这个ws,并在web.war中处理响应,我们必须在EAR中包含一些jar,并调整每个war的清单。 (?)axis2 Websphere 8中的WS - JVMVRFY013

我将axiom-api-1.2.13.jar包含到EAR文件中,并添加到web和ejb WARS的清单中。需要处理包含Base64EncodedFileType对象的响应。

现在,我得到了包含以下内容的异常:

Caused by: java.lang.VerifyError: JVMVRFY013 class loading constraint violated; class=ch/teledata/ws/schema/bisv3_6/Request ... 

我发现这里http://axis.apache.org/axis2/java/core/docs/app_server.html提到这个错误 - 这是有关的Webshpere和Axis2一个已知的问题。我修改了WAS的classLoader,但并未解决问题。该网站提到了一个axis2.xml,无论我在战争/耳朵中包含哪个,它都没有效果。有没有人遇到过这样的问题?什么可能仍然缺少?

也许我不会输入另一个axis2 jar文件,它会读取配置文件?另外,我不确定是否必须将axiom.jar包含到EAR中,而不是ejb.WAR中。

我完全没有想法在哪里寻找问题,所以不要犹豫,向我投掷问题/方向。

如果你已经读了这么多,thx for ur time!

完整堆栈跟踪是在这里(它调用wsStub该方法是从web层调用):

2/25/14 11:49:36:820 CET] 00000021 webapp  E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[Faces Servlet]: java.lang.reflect.InvocationTargetException 
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 javax.faces.webapp.FacesServlet.handleLifecycleException(FacesServlet.java:245) 
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:160) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456) 
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136) 
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97) 
at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:301) 
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) 
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) 
at com.daimler.flsc.fec.web.filter.SerializeRequestFilter.doFilter(SerializeRequestFilter.java:67) 
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) 
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) 
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) 
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) 
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368) 
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495) 
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) 
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) 
at ch.nevis.jcan.optrace.web.RequestContextFilter.doFilter(RequestContextFilter.java:115) 
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) 
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) 
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928) 
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025) 
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3704) 
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304) 
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:962) 
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) 
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305) 
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83) 
at 

com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) 
    at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 
    at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 
    at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 
    at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 
    at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 
    at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 
    at com.ibm.ws.uti 

l.ThreadPool$Worker.run(ThreadPool.java:1659) 
Caused by: javax.faces.FacesException: Error calling action method of component with id main_form:testSearchButton 
    at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72) 
    at javax.faces.component.UICommand.broadcast(UICommand.java:141) 
    at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321) 
    at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296) 
    at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253) 
    at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466) 
    at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32) 
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103) 
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:151) 
    ... 40 more 
Caused by: javax.faces.el.EvaluationException: javax.el.ELException: /view/request/customer.xhtml @492,86 action="#{customerBean.test}": javax.ejb.EJBException: See nested exception; nested exception is: java.lang.Exception: See nested Throwable 
    at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:82) 
    at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:57) 
    ... 49 more 
Caused by: javax.el.ELException: /view/request/customer.xhtml @492,86 action="#{customerBean.test}": javax.ejb.EJBException: See nested exception; nested exception is: java.lang.Exception: See nested Throwable 
    at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:74) 
    at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:78) 
    ... 50 more 
Caused by: javax.ejb.EJBException: See nested exception; nested exception is: java.lang.Exception: See nested Throwable 
Caused by: java.lang.VerifyError: JVMVRFY013 class loading constraint violated; class=ch/teledata/ws/schema/bisv3_6/Request, method=getOMElement(Ljavax/xml/namespace/QName;Lorg/apache/axiom/om/OMFactory;)Lorg/apache/axiom/om/OMElement;, pc=0 
    at java.lang.J9VMInternals.verifyImpl(Native Method) 
    at java.lang.J9VMInternals.verify(J9VMInternals.java:85) 
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:162) 
    at com.daimler.flsc.services.impl.BusinessInformationServiceBean.callPersonSearch(BusinessInformationServiceBean.java:194) 
    at com.daimler.flsc.business.services.dispatchers.BusinessInformationServiceDispatcher.callPersonSearch(BusinessInformationServiceDispatcher.java:68) 
    at com.daimler.flsc.business.services.interfaces.EJSRemote0SLBusinessInformationServiceBean_7e0deb6d.callPersonSearch(EJSRemote0SLBusinessInformationServiceBean_7e0deb6d.java) 
    at com.daimler.flsc.business.services.interfaces._BusinessInformationService_Stub.callPersonSearch(_BusinessInformationService_Stub.java) 
    at com.daimler.flsc.business.services.delegates.BusinessInformationServiceBusinessDelegate.callPersonSearch(BusinessInformationServiceBusinessDelegate.java:55) 
    at com.daimler.flsc.fec.web.control.CustomerBean.test(CustomerBean.java:3194) 
    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.apache.el.parser.AstValue.invoke(AstValue.java:266) 
    at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278) 
    at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) 
    at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:78) 
    at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:57) 
    at javax.faces.component.UICommand.broadcast(UICommand.java:141) 
    at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321) 
    at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296) 
    at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253) 
    at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466) 
    at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32) 
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103) 
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:151) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136) 
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97) 
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:301) 
    at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) 
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) 
    at com.daimler.flsc.fec.web.filter.SerializeRequestFilter.doFilter(SerializeRequestFilter.java:67) 
    at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) 
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) 
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) 
    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) 
    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368) 
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495) 
    at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) 
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) 
    at ch.nevis.jcan.optrace.web.RequestContextFilter.doFilter(RequestContextFilter.java:115) 
    at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) 
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) 
    at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928) 
    at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025) 
    at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3704) 
    at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304) 
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:962) 
    at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) 
    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195) 
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452) 
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511) 
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305) 
    at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83) 
    at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) 
    at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 
    at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 
    at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 
    at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 
    at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 
    at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1659) 

回答

1

堆栈跟踪表明,当类加载器尝试加载ADB生成的类发生错误(可能由Axis2 Web服务客户端使用)。如果你想这样做,那么你还需要在你的应用程序中包含相关的Axis2 JAR。基本上,您需要包含在WebSphere之外运行代码所需的所有库。如果你用PARENT_LAST配置类加载器,那么它应该工作。

另一方面,如果您的应用程序尝试使用Axis2模块(例如,用于WS-Addressing),则只需要更改axis2.xml

+0

Thx为答案! 确实,原因是我认为应用程序和websphere的内部类之间存在着一种隔离。一旦我们包含了所有必需的axis2/lib罐子,它就可以工作。 在此之前,实际上,只要响应中没有Base64EncodedFileType,webservice调用就会工作,因为websphere允许使用它的内部axis2类。非常孤立。 – EvilPuma

+0

是的,PARENT_LAST优先考虑应用程序中的类,但它确实不会将应用程序与WebSphere内部类隔离开来。 –

相关问题