1

我们已经使用axis2 部署了一些Web 服务,它们是在使用RAD 7.5.0 创建的EAR 项目上实现的。EAR 部署在Websphere Application Server 7.0 应用服务器上。我们在服务器上创建了一个共享库,其中包括所有使用的通用 jar(包括 commons-fileupload-1.2.jar),名为 CommonsJar。在我们使用 Tomcat Server 6.XX(仅部署 WAR 而不是整个 EAR)的单元测试中,应用程序具有良好的功能

当应用程序在 WAS 7.0 中部署时会出现问题:当我们在 Java EE 客户端中实例化 Web 服务客户端的存根类时,WAS 会提供以下异常:

[4/26/12 20:35:31:742 CDT] 00000026 SystemErr     R org.apache.axis2.deployment.DeploymentException: org.apache.commons.fileupload.FileUploadException
[4/26/12 20:35:31:743 CDT] 00000026 SystemErr     R     at org.apache.axis2.deployment.AxisConfigBuilder.processMessageBuilders(AxisConfigBuilder.java:741)
[4/26/12 20:35:31:743 CDT] 00000026 SystemErr     R     at org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:202)
[4/26/12 20:35:31:743 CDT] 00000026 SystemErr     R     at org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:641)
[4/26/12 20:35:31:744 CDT] 00000026 SystemErr     R     at org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:116)
[4/26/12 20:35:31:744 CDT] 00000026 SystemErr     R     at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:68)
[4/26/12 20:35:31:744 CDT] 00000026 SystemErr     R     at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:184)
[4/26/12 20:35:31:744 CDT] 00000026 SystemErr     R     at com.mx.ing.wm.portal.dao.RestableceUsuarioPortalDAO.<init>(RestableceUsuarioPortalDAO.java:57)
[4/26/12 20:35:31:744 CDT] 00000026 SystemErr     R     at com.mx.ing.wm.portal.blogic.RestableceUsuarioPortalFacade.consultaUsuarioRestablecer(RestableceUsuarioPortalFacade.java:16)
[4/26/12 20:35:31:744 CDT] 00000026 SystemErr     R     at com.mx.ing.wm.portal.actions.RestableceUsuarioPortalAction.consultaUsuarioRestablecer(RestableceUsuarioPortalAction.java:188)
[4/26/12 20:35:31:744 CDT] 00000026 SystemErr     R     at com.mx.ing.wm.portal.actions.RestableceUsuarioPortalAction.execute(RestableceUsuarioPortalAction.java:128)
[4/26/12 20:35:31:744 CDT] 00000026 SystemErr     R     at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
[4/26/12 20:35:31:744 CDT] 00000026 SystemErr     R     at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
[4/26/12 20:35:31:744 CDT] 00000026 SystemErr     R     at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
[4/26/12 20:35:31:744 CDT] 00000026 SystemErr     R     at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
[4/26/12 20:35:31:744 CDT] 00000026 SystemErr     R     at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
[4/26/12 20:35:31:745 CDT] 00000026 SystemErr     R     at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
[4/26/12 20:35:31:745 CDT] 00000026 SystemErr     R     at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
[4/26/12 20:35:31:745 CDT] 00000026 SystemErr     R     at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
[4/26/12 20:35:31:745 CDT] 00000026 SystemErr     R     at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
[4/26/12 20:35:31:745 CDT] 00000026 SystemErr     R     at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
[4/26/12 20:35:31:745 CDT] 00000026 SystemErr     R     at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
[4/26/12 20:35:31:745 CDT] 00000026 SystemErr     R     at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1657)
[4/26/12 20:35:31:745 CDT] 00000026 SystemErr     R     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:939)
[4/26/12 20:35:31:745 CDT] 00000026 SystemErr     R     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
[4/26/12 20:35:31:745 CDT] 00000026 SystemErr     R     at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179)
[4/26/12 20:35:31:745 CDT] 00000026 SystemErr     R     at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:91)
[4/26/12 20:35:31:745 CDT] 00000026 SystemErr     R     at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:864)
[4/26/12 20:35:31:746 CDT] 00000026 SystemErr     R     at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592)
[4/26/12 20:35:31:746 CDT] 00000026 SystemErr     R     at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)
[4/26/12 20:35:31:746 CDT] 00000026 SystemErr     R     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
[4/26/12 20:35:31:746 CDT] 00000026 SystemErr     R     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
[4/26/12 20:35:31:746 CDT] 00000026 SystemErr     R     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
[4/26/12 20:35:31:746 CDT] 00000026 SystemErr     R     at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
[4/26/12 20:35:31:746 CDT] 00000026 SystemErr     R     at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1784)
[4/26/12 20:35:31:746 CDT] 00000026 SystemErr     R     at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
[4/26/12 20:35:31:746 CDT] 00000026 SystemErr     R     at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
[4/26/12 20:35:31:746 CDT] 00000026 SystemErr     R     at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
[4/26/12 20:35:31:746 CDT] 00000026 SystemErr     R     at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
[4/26/12 20:35:31:747 CDT] 00000026 SystemErr     R     at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
[4/26/12 20:35:31:747 CDT] 00000026 SystemErr     R     at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
[4/26/12 20:35:31:747 CDT] 00000026 SystemErr     R     at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
[4/26/12 20:35:31:747 CDT] 00000026 SystemErr     R     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1604)
[4/26/12 20:35:31:747 CDT] 00000026 SystemErr     R Caused by: java.lang.NoClassDefFoundError: org.apache.commons.fileupload.FileUploadException
[4/26/12 20:35:31:748 CDT] 00000026 SystemErr     R     at java.lang.J9VMInternals.verifyImpl(Native Method)
[4/26/12 20:35:31:748 CDT] 00000026 SystemErr     R     at java.lang.J9VMInternals.verify(J9VMInternals.java:72)
[4/26/12 20:35:31:748 CDT] 00000026 SystemErr     R     at java.lang.J9VMInternals.initialize(J9VMInternals.java:134)
[4/26/12 20:35:31:748 CDT] 00000026 SystemErr     R     at java.lang.J9VMInternals.newInstanceImpl(Native Method)
[4/26/12 20:35:31:748 CDT] 00000026 SystemErr     R     at java.lang.Class.newInstance(Class.java:1345)
[4/26/12 20:35:31:748 CDT] 00000026 SystemErr     R     at org.apache.axis2.deployment.DescriptionBuilder.processMessageBuilders(DescriptionBuilder.java:230)
[4/26/12 20:35:31:748 CDT] 00000026 SystemErr     R     at org.apache.axis2.deployment.AxisConfigBuilder.processMessageBuilders(AxisConfigBuilder.java:738)
[4/26/12 20:35:31:748 CDT] 00000026 SystemErr     R     ... 41 more
[4/26/12 20:35:31:748 CDT] 00000026 SystemErr     R Caused by: java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileUploadException
[4/26/12 20:35:31:749 CDT] 00000026 SystemErr     R     at java.lang.ClassNotFoundException.<init>(ClassNotFoundException.java:76)
[4/26/12 20:35:31:749 CDT] 00000026 SystemErr     R     at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:351)
[4/26/12 20:35:31:749 CDT] 00000026 SystemErr     R     at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:347)
[4/26/12 20:35:31:749 CDT] 00000026 SystemErr     R     at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83)
[4/26/12 20:35:31:750 CDT] 00000026 SystemErr     R     at java.lang.ClassLoader.loadClass(ClassLoader.java:619)
[4/26/12 20:35:31:750 CDT] 00000026 SystemErr     R     ... 48 more

我们的 deployment.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_1335376658663">   <deployedObject xmi:type="appdeployment:ApplicationDeployment" xmi:id="ApplicationDeployment_1335376658663" startingWeight="10" warClassLoaderPolicy="SINGLE">
    <modules xmi:type="appdeployment:WebModuleDeployment" xmi:id="WebModuleDeployment_1335376658663" startingWeight="10000" uri="CallCenterWMWeb.war"/>
    <modules xmi:type="appdeployment:WebModuleDeployment" xmi:id="WebModuleDeployment_1335376658664" startingWeight="10000" uri="OperacionesWMWeb.war"/>
    <classloader xmi:id="Classloader_1335376658663" mode="PARENT_LAST">
      <libraries xmi:id="LibraryRef_1335376658663" libraryName="CommonsJar"/>
    </classloader>   </deployedObject> </appdeployment:Deployment>

服务器上 JVM 变量的配置是这样的:

-Xquickstart -Xlp -Dclient.encoding.override=UTF-8 -agentlib:getClasses

可能是什么问题,有什么想法吗?谢谢指教

4

2 回答 2

3

检查这篇文章:

http://axis.apache.org/axis2/java/core/docs/app_server.html

寻找 WebSphere 部分,也许您必须编辑 axis2.xml 配置并将参数 EnableChildFirstClassLoading 更改为“true”

于 2012-05-02T21:49:28.250 回答
1

PARENT_LAST 似乎仅适用于您的部署 XML 的 CommonsJar,尝试从管理控制台 UI 或使用此处提到的脚本为所有 Web 应用程序打开它 -我可以在 ibm-web-bnd 中为 WebSphere 设置类加载器策略吗? xmi 文件是什么?(请参阅其中的 deployment.xml 外观示例)

于 2012-04-27T20:13:20.197 回答