`
Jophy
  • 浏览: 38711 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

websphere6.0部署axis2 1.3

阅读更多
养成好的习惯  随时记录解决方案
好记性不如烂笔头,以前在WebSphere上部署过axis2   今天又折腾了一晚上
决定还是写在这做备案

WebSphere6+axis2 1.3
发布webservice服务的时候出现下面的异常
java.lang.NoSuchMethodError:   javax/wsdl/Operation.getExtensibilityElements()Ljava/util/List;   at   org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateOperations(WSDL11ToAxisServiceBuilder.java:1010)   at   org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populatePortType(WSDL11ToAxisServiceBuilder.java:399)   at   org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateEndpoints(WSDL11ToAxisServiceBuilder.java:318)   at   org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateService(WSDL11ToAxisServiceBuilder.java:288)   at ...  


解决方案:
1、
引用
Apache Muse - Conflicting Version of WSDL4J in WebSphere Deployments

When deploying your Muse-based applications on IBM WebSphere Application Server (WAS) 6.0 or 6.1, you need to be aware that Muse relies on WSDL4J 1.6.1 while the server's core libraries include WSDL4J 1.4. If you install your application using the default class loading system, it will fail to start because the Muse framework depends on WSDL4J APIs that are only available in WSDL4J 1.5 and above. To work around this issue, you can configure the server to use the application's class loader before the container or system class loaders; this will ensure that the WSDL4J classes that are in your application's /WEB-INF/lib directory will be loaded before those in $WAS_HOME/lib.

If you are developing and deploying your application through IBM Rational Application Developer (RAD), you can make the required changes by setting the class loader mode to PARENT_LAST and the class loader policy to SINGLE.

If you are installing your application through the WAS admin console, select Enterprise Applications > Your Application > Class loading and update detection. You should then check the boxes labeled as follows:

    * Classes loaded with application class loader first

    * Single class loader for application

Making these changes should not affect your other (non-Muse) applications because, having no WSDL4J JAR files of their own, the server will continue up the chain of class loaders until the container's class loader discovers WSDL4J 1.4 in $WAS_HOME/lib.

就是先加载应用自己的类库  最后在加载父类 不用WebSphere自带的wsdl类


2、更改之后 抛出struts标签不能解析 什么的
这个时候  把应用里面的servlet.jar删除  这个时候用WebSphere自带的

3、再抛出
RAD 6.0.1, DataSource ClassCastException  
这个异常
的时候 删除这个jar包jdbc2_0-stdext.jar(hibernate带的),可以查询下DataSource这个类在哪些包中 没用的都删掉

4、重启  发布成功ok
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics