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

在调用webservice时出现了上述问题通过网上搜索已经在jre\lib和tomcat下建立endorsed文件夹,包含jaxb-api.jar和jaxws-api.j... 在调用webservice时出现了上述问题
通过网上搜索已经在jre\lib和tomcat下建立endorsed文件夹,包含jaxb-api.jar和jaxws-api.jar,未能解决该问题
后来发现直接启动tomcat不会出现这个问题,而在myeclipse中启动会出现这个问题
注,myeclipse中使用的jdk为我安装的
急求解,在线等……
展开
 我来答
jamxval
推荐于2016-02-11 · TA获得超过6822个赞
知道大有可为答主
回答量:4308
采纳率:82%
帮助的人:1421万
展开全部
这似乎是在说明你的 jar 库放置的位置不一致。一般是越是通用到能给所有程序用的库就放置的越高优先级的类路径中,越是专用的就越要放在 /WEB-INF/lib 中。这是 Java 的 class loader 的 parent-first 规则也是 Java 名字空间隔离和类加载器的安全相关的约定。

当我们完全重启 tomcat 时,所以东西重建。而当我们是 re-load web context 时,则只是 Context Class Loader 重建了,因此它们的 class-loader 层次中只有部分变化了。那么当我们把第三方类库放置的位置不合适时就是怪异的错误。

一般来说重启 Tomcat 正常而 reload 不正常可能是因为 Tomcat 能找到两个完全同名的类但它们实际上的版本不同并且在不同位置(不同的 class loader 管理的范围内),因此我们一般需要确认这些第三方类库究竟应该放在什么位置。

如果你说的从 MyEclipse 中启动并不是 reload 的话,那我们可以在命令行观察两种启动方式产生的操作系统进程的参数列表有没有什么不一样的地方。我们可以在 M$ 网站上下载一个叫 Process Explorer NT 的工具来观察进程资料。
追问
最后把jax-ws版本从2.2改成2.1;另外如果返回对象,则要有默认构造方法;如果还不行,尝试将原来的webservice全部删除,自己写一个通过myeclipse生产web service,再把原来的还原,可以保证不报错,不过上面的问题原因还是不清楚
追答
你需要一个文本比较工具,比如 Beyond Compare 或一个类似的开源的,它能够比较两个文件夹,你重新产生一个代码后复制另一个文件夹,然后比较你还原出来的,估计有个什么文件同名但内容不完全相同,或者某个文件少了。

我们需要分析:
是同一个 tomcat?
仅有的差别是从不同的地方启动它?
我们能从命令行确认它们的参数真的完全相同么?

这里面可能 ${catalina.home} 不同而导致库不相同。
百度网友bcff5dc8
2014-08-29 · TA获得超过184个赞
知道小有建树答主
回答量:134
采纳率:100%
帮助的人:52.8万
展开全部
用myeclipse 重新部署一下 然后在 重新 clean
追问
已经试过了,包括重新搭一个环境还是这样
追答
我昨天也碰到了同样的问题,就是myeclipse 怎么编辑 都只有一部分生成  一部分没有生成 ,那位朋友说他是删除了一些不想要的 java代码后出现的这种情况 ,结果未知,
我认为 这个应该是 myeclipse 的问题,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yy6700103789
2014-08-29 · TA获得超过110个赞
知道答主
回答量:216
采纳率:100%
帮助的人:98万
展开全部
myeclipse 一般公司是不允许用的 因为是收费的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式