java.lang.NoSuchMethodError

时间:2013-10-25 13:55:31

标签: java tomcat

我正在尝试运行Tomcat 7并收到以下错误:

java.lang.NoSuchMethodError: com.sun.xml.ws.assembler.TubelineAssemblyController: method <init>()V not found

根据这篇文章(http://www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/

  1. gmbal-API-only.jar
  2. HA-api.jar文件
  3. JAXB-core.jar添加
  4. JAXB-impl.jar中
  5. JAXWS-api.jar文件
  6. JAXWS-rt.jar中
  7. 管理-api.jar文件
  8. policy.jar
  9. STAX-ex.jar
  10. streambuffer.jar
  11. 我将这些jar添加到Tomcat的libs(C:\ Program Files \ Apache Software Foundation \ apache-tomcat-7.0.37 \ lib),到我的项目的libs,甚至在JDK下:C:\ Program Files \ Java \ jdk1 .7.0_15 \ lib,仍然没有好处。

    有趣的是,我的项目中没有使用com.sun.xml.ws.assembler.TubelineAssemblyController类的内容。有谁有想法吗?提前谢谢。

3 个答案:

答案 0 :(得分:5)

java.lang.NoSuchMethodError

通常在类路径中有错误的jar版本时会发生。

例如,在开发过程中,您使用stax-ex1.2.jar但运行时使用stax-ex.jar。确保在类路径中有相同版本的jar可用于编译时和运行时。

答案 1 :(得分:1)

“有趣的是,我的项目中没有任何内容使用com.sun.xml.ws.assembler.TubelineAssemblyController类。”

但你的一个罐子的来源正在寻找它。您可能有错误的jar文件版本。尝试重新下载最新版本。

答案 2 :(得分:0)

我遇到了与Apache Commons和Tomcat 7相同的问题。 我的lib文件夹中有一个新版本,而tomcat在commmons lib文件夹中有另一个版本。

Tomcat首先加载其文件夹的libs,然后加载我的webapp的WEB / lib。一旦我使用的方法仅适用于新版本,我就会遇到与您相同的异常。

尝试在类路径中本地化不同版本的lib。