在构建路径中添加项目时,Eclipse中的NoClassDefFoundError [英] NoClassDefFoundError in Eclipse when adding project in build path

查看:160
本文介绍了在构建路径中添加项目时,Eclipse中的NoClassDefFoundError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试运行我的项目时,我正在Eclipse中收到一个 NoClassDefFoundError



我的项目如下所示:

  JavaProject:BulkAdmin 
- src
- com.mycompany.bulkadmin.SDK.util
- Login.java

动态Web项目:JSPTesting
- src
- com.mycompany.bulkadmin.jspController
- Controller.java
- WebContent
- index.html
- execute.jsp

这是控制流程:


  1. index.html载入

  2. index.html有一个重定向到execute.jsp的表单

  3. execute.jsp采用表单中返回的信息,并对Login进行静态调用。 java

  4. execute.jsp打印调用结果

Controller.java使用Login。 java的。我正在收到编译错误。为了解决这个问题,我做到了这一点:


  1. 右键单击JSPTesting - >属性


  2. 选择项目标签

  3. 点击添加

  4. 选择BulkAdmin(Project)

我不知道为什么,但现在当我得到一个 NoClassDefFoundError 。我已经做了一些谷歌搜索。我认为这意味着我弄坏了我的类路径,但我不知道如何解决这个问题。

  java.lang.NoClassDefFoundError:com / myCompany / bulkadmin / SDK / util / Login 
在com.myCompany。在org.apache.jsp.execute_jsp._jspService(execute_jsp.java:63)上的
$ org.apache.jasper.runtime.HttpJspBase上的
。 service(HttpJspBase.java:98)
在javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
在org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java: 331)
在org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321)
在org.apache.jasper.servlet.JspServlet.service(JspServlet.java:257)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
在org.apache .catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
在org.apache.catalina.core.StandardWra pperValve.invoke(StandardWrapperValve.java:213)
在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
在org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:127)
在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java: 108)
在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
在org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
在org.apache.coyote.http11.Http11BaseProtocol $ Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
在org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
在org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
在org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run(Thr eadPool.java:689)
在java.lang.Thread.run(Thread.java:595)

其他信息:




  • 我正在使用tomcat(在Eclipse中)作为我的服务器

  • 浏览器和eclipse控制台中出现异常

  • execute.jsp是一个JSP



在SO上似乎有很多类似的问题。我已经读了大约15个,尝试了各种各样的东西,但是我认为我的问题有不同的解决方案。我可以提供更多的信息。

解决方案

右键单击动态Web项目,转到属性>部署程序集并在其中添加从属项目。这样他们最终将作为JAR在 / WEB-INF / lib 中,完全在那里你想要的。





您需要转到属性> Java EE模块依赖关系



另请参见:




I am receiving an NoClassDefFoundError in Eclipse when I try to run my project.

My Project looks like this:

JavaProject: BulkAdmin
   - src
      - com.mycompany.bulkadmin.SDK.util
         - Login.java

Dynamic Web Project: JSPTesting
   - src
      - com.mycompany.bulkadmin.jspController
         - Controller.java
   - WebContent
      - index.html
      - execute.jsp

This is the control flow:

  1. index.html loads
  2. index.html has a form that redirects to execute.jsp
  3. execute.jsp takes the info returned in the form and makes a static call to Login.java
  4. execute.jsp prints the results of the call

Controller.java uses Login.java. I was receiving compilation errors. To resolve them I did this:

  1. Right click on JSPTesting -> properties
  2. Choose java build path on the left bar
  3. Choose projects tab
  4. Click add
  5. Choose BulkAdmin (Project)

I am not sure why but now when I am getting a NoClassDefFoundError. I have done some googling. I think that this means that I have messed up my classpath somehow but I am not sure how to resolve this.

java.lang.NoClassDefFoundError: com/myCompany/bulkadmin/SDK/util/Login
    at com.myCompany.bulkadmin.jspController.Controller.process(Controller.java:44)
    at org.apache.jsp.execute_jsp._jspService(execute_jsp.java:63)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:257)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Thread.java:595)

Other information:

  • I am using tomcat (in Eclipse) as my server
  • The exception shows up in the browser and the eclipse console
  • execute.jsp is a JSP

It seems like there are many similar questions to this on SO. I have read about 15 of them and tried various things however I think that my question has a different solution. I can provide more information.

解决方案

Rightclick your dynamic web project, go to Properties > Deployment Assembly and add the dependent projects there. This way they will end up as JAR in /WEB-INF/lib, exactly there where you want it to be.

In Eclipse versions older than 3.5 you need to go to Properties > Java EE Module Dependencies.

See also:

这篇关于在构建路径中添加项目时,Eclipse中的NoClassDefFoundError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆