我写了一个命令行Java程序(一个html分析器),我试图将它转换成一个Web服务。
我写了一个jsp文件,收集一些信息并将它们传递给我的程序。 问题是servlet无法在分析它之前找到我用来美化html源代码的jar(HTMLCleaner),因此它会以异常停止执行。
在Tomcat日志中,我发现此消息:
SEVERE:servlet [Validate]的Servlet.service()在路径[/ MyWebService]的上下文中引发了异常[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作为我的webservice项目的库包含在内,并且命令行版本运行良好。
为什么找不到HTMLCleaner?
答案 0 :(得分:0)
看起来tomcat找到的库版本与您开发/编译的版本不同:类在那里,但它没有在编译时使用的相同接口。
检查您使用哪个版本的独立版本以及哪个版本将其放入您的webapp的WEB-INF/lib
目录中。此外,您可能有多个版本可用,例如在tomcat的/lib
目录中的全局类路径中 - 如果在webapp中找不到它,请在全局类路径中搜索它。
编辑:当Anders发表评论时,请确保找到该库的每个实例,即使它与您已找到的目录位于同一目录中。