问题描述
我已经在Eclipse 3.6.1(Helios)中创建了一个动态Web项目。
我已经将JAR文件添加到该项目的构建路径中,并且它们都工作得很好。
但是, Jsoup
是一个无法识别的JAR文件。
每当我尝试在动态Web项目中运行Servlet时,都会在服务器日志中收到错误消息,指出java.lang.NoClassDefFoundError: org/jsoup/Jsoup
。
在类文件编辑器中进行进一步检查后,我看到消息
The JAR file /Users/ongozahcomputer/Downloads/jsoup-1.8.2.jar has no source attachment. You can attach the source by clicking Attach Source below:
The JAR file /Users/ongozahcomputer/Downloads/jsoup-1.8.2.jar has no source attachment. You can attach the source by clicking Attach Source below:
我已经配置了包含所有文件的软件包的构建路径,点击add external JARs
并添加了jsoup-1.8.2.jar
。
它出现在构建路径中。
我还根据其他用户的建议,将jsoup-1.8.2.jar
添加到了项目的WEB-INF/lib
文件夹中。
我真的很困惑为什么它没有被认可,任何帮助将不胜感激。
谢谢!
这是控制台输出:
WARNING: StandardWrapperValve[server.HelloServlet2]: PWC1406: Servlet.service() for servlet server.HelloServlet2 threw exception
java.lang.NoClassDefFoundError: org/jsoup/Jsoup
at server.HelloServlet2.doGet(HelloServlet2.java:149)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:637)
1楼
您已添加了用于编译动态Web项目的jar文件。
在执行您的应用程序时应执行相同的操作。 Right click on your dynamic web project and click run As and Run configurations. Click the classpath and check the jar file is added there or not.
如果不是,请将其添加到在执行动态Web应用程序时将引用的类路径。
希望能帮助到你!
2楼
尝试将罐子添加到1. WEB-INF / lib文件夹。 2. Tomcat / lib文件夹。
清洁服务器,重新启动,然后运行应用程序。
这对我有用。