1

我编写了一个命令行 Java 程序(一个 html 分析器),并试图将其转换为 Web 服务。

我编写了一个 jsp 文件来收集一些信息并将它们传递给我的程序。问题是 servlet 在分析之前无法找到我用来美化 html 源代码的库 jar(HTMLCleaner),因此它会以异常停止执行。

在 Tomcat 日志中,我发现此消息:

严重:servlet [Validate] 在路径 [/MyWebService] 的上下文中的 Servlet.service() 引发异常 [Servlet 执行引发异常],根本原因 java.lang.NoSuchMethodError: org.htmlcleaner.HtmlCleaner.(Ljava/io/File ;)V at it.mypackage.mybeautifierclass.(mybeautifierclass.java:39)

我使用 Netbeans 7.1.2 作为 IDE,我已经包含了 HtmlCleaner 的 jar 作为我的 web 服务项目的库,并且命令行版本运行良好。

为什么它找不到 HTMLCleaner?

4

1 回答 1

0

看起来 tomcat 找到的库版本与您开发/编译时使用的版本不同:该类存在,但与编译时使用的接口不同。

检查您使用的独立版本以及哪个版本进入您的 webappWEB-INF/lib目录。此外,您可能有多个版本可用,例如在 tomcat/lib目录中的全局类路径中 - 如果在您的 web 应用程序中找不到它,请在全局类路径中搜索它。

编辑:正如 Anders 评论的那样,确保找到该库的每个实例,即使它与您已经找到的目录位于同一目录中。

于 2013-01-07T10:47:13.593 回答