Axis2 1.3 and WebSphere 8.5 compatibility. [AxisServlet]: java.lang.NoClassDefFoundError: org.apache.woden.resolver.URIResolver

China☆狼群 提交于 2019-12-11 12:55:55

问题


I have an application migrating from Java 5 to Java 7 and Websphere 6 to 8.5.

This application have some web services developed through AXIS2 1.3.

When launching in Websphere the ear give me this error.

[] 00000088 WarBasedAxisC I org.apache.axis2.deployment.WarBasedAxisConfigurator <init> Could not find axis2.xml, loading default org/apache/axis2/deployment/axis2_default.xml from classpath
[] 00000088 DeploymentEng I org.apache.axis2.deployment.DeploymentEngine prepareRepository No modules directory was found under /apps/WebSphere85/profiles/node/installedApps/s00va9943461Network/NAME.ear/a_NAME.war/WEB-INF.
[] 00000088 ServletWrappe E com.ibm.ws.webcontainer.servlet.ServletWrapper init Uncaught.init.exception.thrown.by.servlet
[] 00000088 FfdcProvider  W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /apps/WebSphere85/profiles/node/logs/ffdc/sa-iNAME-biz-1_83a50d9f_15.12.22_13.03.50.8155934160160475396565.txt com.ibm.ws.webcontainer.servlet.ServletWrapperImpl 272
[] 00000088 WarBasedAxisC I org.apache.axis2.deployment.WarBasedAxisConfigurator <init> Could not find axis2.xml, loading default org/apache/axis2/deployment/axis2_default.xml from classpath
[] 00000088 DeploymentEng I org.apache.axis2.deployment.DeploymentEngine prepareRepository No modules directory was found under /apps/WebSphere85/profiles/node/installedApps/s00va9943461Network/NAME.ear/a_NAME.war/WEB-INF.
[] 00000088 ServletWrappe E com.ibm.ws.webcontainer.servlet.ServletWrapper init Uncaught.init.exception.thrown.by.servlet
[] 00000088 FfdcProvider  W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /apps/WebSphere85/profiles/node/logs/ffdc/sa-iNAME-biz-1_83a50d9f_15.12.22_13.03.50.8778098661991316840273.txt com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter 82
[] 00000088 FfdcProvider  W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /apps/WebSphere85/profiles/node/logs/ffdc/sa-iNAME-biz-1_83a50d9f_15.12.22_13.03.50.8947148831197547706091.txt com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters -SE 1078
[] 00000088 webapp        E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[AxisServlet]: java.lang.NoClassDefFoundError: org.apache.woden.resolver.URIResolver
        at java.lang.J9VMInternals.verifyImpl(Native Method)
            at java.lang.J9VMInternals.verify(J9VMInternals.java:93)
            at java.lang.J9VMInternals.initialize(J9VMInternals.java:170)
            at org.apache.axis2.deployment.ServiceDeployer.deploy(ServiceDeployer.java:62)
            at org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136)
            at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:815)
            at org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144)
            at org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:391)
            at org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:254)
            at org.apache.axis2.deployment.DeploymentEngine.loadServices(DeploymentEngine.java:144)
            at org.apache.axis2.deployment.WarBasedAxisConfigurator.loadServices(WarBasedAxisConfigurator.java:283)
            at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:95)
            at org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:569)
            at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:457)
            at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:342)
            at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.init(ServletWrapperImpl.java:168)
            at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:634)
            at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
            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:79)
            at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)
            at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)
            at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3923)
            at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
            at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:986)
            at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
            at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
            at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463)
            at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530)
            at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316)
            at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:287)
            at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
            at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
            at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
            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:1881)
    Caused by: java.lang.ClassNotFoundException: org.apache.woden.resolver.URIResolver
            at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)
            at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
            at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
            at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:703)
            ... 42 more

What I've tried:

  • Set the parent last parameter in WebSphere
  • Rebuilding ear and webservices
  • The services are deployed on was6 (evidently application not working because was6 doesn't support java 7)
  • Tomcat run war without any problems.

Probably in websphere is configured JAX-WS/AXIS2 1.3 is correct with websphere 8.5? I've supposed that is related to the axis2 version because this error happen in [Axis Servlet].

I'm a newbie on Websphere, but I have the necessity to make working this ear, thank you for help.

Mine deployement.xml:

<?xml version="1.0" encoding="UTF-8"?>
<appdeployment:Deployment xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:appdeployment="http://www.ibm.com/websphere/appserver/schemas/5.0/appdeployment.xmi" xmi:id="Deployment_1449152598274">
  <deployedObject xmi:type="appdeployment:ApplicationDeployment" xmi:id="ApplicationDeployment_1449152598274" deploymentId="0" startingWeight="1" binariesURL="$(APP_INSTALL_ROOT)/s0000000001Network/App_NAME.ear" useMetadataFromBinaries="false" enableDistribution="true" createMBeansForResources="true" reloadEnabled="false" appContextIDForSecurity="href:s00000000001Network/App_NAME" filePermission=".*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755" allowDispatchRemoteInclude="false" allowServiceRemoteInclude="false" asyncRequestDispatchType="DISABLED" standaloneModule="false" enableClientModule="false">
    <targetMappings xmi:id="DeploymentTargetMapping_1449152598274" enable="true" target="ServerTarget_1449152598274"/>
    <targetMappings xmi:id="DeploymentTargetMapping_1449152598275" enable="true" target="ServerTarget_1449152598275"/>
    <classloader xmi:id="Classloader_1449152598274" mode="PARENT_FIRST"/>
    <modules xmi:type="appdeployment:WebModuleDeployment" xmi:id="WebModuleDeployment_1449152598274" deploymentId="1" startingWeight="10000" uri="APP_NAME.war" containsEJBContent="0">
      <targetMappings xmi:id="DeploymentTargetMapping_1449152598276" target="ServerTarget_1449152598274"/>
      <targetMappings xmi:id="DeploymentTargetMapping_1449152598277" target="ServerTarget_1449152598275"/>
      <classloader xmi:id="Classloader_1449152598275"/>
    </modules>
    <properties xmi:id="Property_1449152598274" name="metadata.complete" value="true"/>
  </deployedObject>
  <deploymentTargets xmi:type="appdeployment:ServerTarget" xmi:id="ServerTarget_1449152598274" name="sa-App_NAME-biz-1" nodeName="s00000000001"/>
  <deploymentTargets xmi:type="appdeployment:ServerTarget" xmi:id="ServerTarget_1449152598275" name="sw-App_NAME-biz-1" nodeName="s00000000001"/>
</appdeployment:Deployment>

Class Loader correctly setted


回答1:


If you are bundling axis2 engine with your application, you have to disable WebSphere JAX-WS runtime. You need to :

  • configure your web moudle to PARENT LAST classloader
  • set DisableIBMJAXWSEngine: true in the META-INF/MANIFEST.MF of a WAR file

Or migrate your application to use web service engine provided by WAS 8.5.5 (which supports JAX-WS).

For more details check - Using a third-party JAX-WS web services engine



来源:https://stackoverflow.com/questions/35011645/axis2-1-3-and-websphere-8-5-compatibility-axisservlet-java-lang-noclassdeffo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!