1

我正在尝试运行 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. 策略.jar
  9. stax-ex.jar
  10. 流缓冲.jar

我将这些 jar 添加到 Tomcat 的库(C:\Program Files\Apache Software Foundation\apache-tomcat-7.0.37\lib)、我的项目的库,甚至在 JDK 下:C:\Program Files\Java\jdk1.7.0_15 \lib,还是不行。

有趣的是我的项目中没有使用 com.sun.xml.ws.assembler.TubelineAssemblyController 类。有人有什么主意吗?提前致谢。

4

3 回答 3

5
java.lang.NoSuchMethodError

当您在类路径中有错误版本的 jar 时,通常会发生这种情况。

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

于 2013-10-25T13:56:04.870 回答
1

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

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

于 2013-10-25T13:57:56.270 回答
0

我对 Apache Commons 和 Tomcat 7 也有同样的问题。我的 lib 文件夹中有一个新版本,而 tomcat 在 commmons lib 文件夹中有另一个版本。

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

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

于 2014-03-28T11:32:53.230 回答