java.lang.NoSuchMethodError: javax.xml.ws.WebFault.messageName()Ljava/lang/Strin

最近在运行一个WebService的示例时,发生了JAX-WS 2.2 API与Java SE 6冲突的问题。差了很多资料,好像这个问题遇到的不多,最终

http://blog.sina.com.cn/s/blog_4c7757980100m7z8.html

在这位仁兄博客找到了解决方法
一,开发环境:
JDK:jdk7
Eclipse:eclipse-jee-helios-SR1-win32
Tomcat:apache-tomcat

WebService:metro.zip

二,错误信息:
WSSERVLET11: failed to parse runtime descriptor: java.lang.NoSuchMethodError: javax.xml.ws.WebFault.messageName()Ljava/lang/String;

三,错误原因:
参照:http://metro.java.net/guide/ch02.html#mustanga3
说明:Java SE 6 Update Release 4之前的版本中包含的JAX-WS版本为2.0;
Java SE 6 Update Release 4以及之后的版本中包含的JAX-WS版本为2.1;
Metro2.0中包含的JAX-WS版本为2.2。
程序在运行时优先使用内嵌到Java SE 6中的JAX-WS API,而不是从Metro拷贝到应用程序的
JAX-WS 2.2 API。因此,如果应用程序中使用了JAX-WS 2.2 API,就会在运行时出错。

四,解决方法:
参照metro内的metro-on-tomcat.xml文件,将metro内的JAR包拷贝到如下目录中。(目录不存在则手动创建)
方法1:将webservices-api.jar拷贝到JAVA_HOME内的jre\lib\endorsed目录。例:
Java\jdk7\jre\lib\endorsed\jaxws-api.jar

如果要运行web程序的话,还要.......
1:将jsr173_api.jar和jaxws-api.jar拷贝到Tomcat的endorsed目录。例:
Tomcat\endorsed\jsr173_api.jar
Tomcat\endorsed\jaxws-api.jar
2:将、jaxws-api.jar、jaxws-rt.jar 和jaxws-tools.jar四个文件拷贝到Tomcat的lib目录。例:
Tomcat\lib\jaxws-api.jar
Tomcat\lib\jaxws-rt.jar
Tomcat\lib\jaxws-tools.jar<

出现则中问题我觉得应该是jdk里有相同的权限的RuntimeModeler类,jvm加载的时候。没有把jaxws的这个类加载上。所以就会报这个异常.当把jaxws-api.jar放到jdk目录里面改变了加载顺序,就可以了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值