websphere 上部署axis2 的webservice

蔷薇枝 2012-05-23 02:47:01
初学axis2,在websphere上面安装了axis2的war包后,validate version service的时候发生错误,用axis2的upload service 功能将一个简单的aar 上传部署,能跟访问其wsdl文件,但是用soapui 测试的时候,报出如下错误
<faultcode>soapenv:Server</faultcode>
<faultstring>java.lang.NoSuchMethodError: org/apache/axis2/util/Utils.getServiceAndOperationPart(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;</faultstring>
客户端调用的错误提示:
org.apache.axis2.AxisFault: java.lang.NoSuchMethodError: org/apache/axis2/util/Utils.getServiceAndOperationPart(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:375)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:555)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:531)
at org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:102)
at test.main(test.java:83)

同一个aar放在tomcat下面部署发布后,用soapui测试通过。
不知道websphere的环境到底是出了什么问题?
是跟这个warning有关系吗?
log4j:WARN No appenders could be found for logger (org.apache.axis2.context.AbstractContext).
log4j:WARN Please initialize the log4j system properly.
...全文
534 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
williamwangzhou 2014-01-01
  • 打赏
  • 举报
回复
我现在 也在搞这块。感谢 明天去试试! 今天 我将axis2.war 部署到websphere 中,首页正常,点击service就报错 ,还有就是登陆也不行。 报错的内容 大致是 什么文件上传错误 什么的。。。 修改了前两个,但是没有成功! 然后就回来找资料了 。。。
蔷薇枝 2012-05-23
  • 打赏
  • 举报
回复
问题已解决。
首先环境是内嵌在RAD7中的websphere,axis2采用的是1.6.2的最新版本。

出现如上问题的原因是因为websphere自己支持的jar跟axis2应该是有冲突,虽然我遇到的这个问题的冲突表现跟其他人的不太相同,我的报的是no method found ,但是我查看过源码发现方法是存在的。
解决方法是从这个网址搜到的,不过说的不是特别详细,摸索了半天才完全改好。解决方法对于包冲突比较通用。
http://www.webspherecn.com/forum.php?mod=viewthread&tid=6
1,将应用axis2.xml中的EnableChildFirstClassLoading 参数设为true (Axis2 1.5.5 或者更高版本)
2,设置应用的类加载级别为 Classes loaded with local class loader first (parent last)
3,设置WAS server JVM的自定义参数:com.ibmcom.ibm.websphere.webservices.DisableIBMJAXWSEngine 为 true
第一步好说。
第二步做的时候,遇到了一个问题,在打开administration console之后,我设错了路径,正确的设置路径应该是选择应用程序,点击进入后,点管理模块(我之前是点了类装入和更新检测,修改之后无效),点击对应的模块进入,即可看到最下面要修改的类加载级别。
第三步,应用服务器--》yourserver-->java和进程管理 下的 进程定义--->其他属性下的 java虚拟机-->其他属性下的定制属性,如果没有该属性,则新建之。
应该要重启一下服务器吧。问题解决。描述地比较菜鸟,希望能给跟我一样迷茫的人一点帮助。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧