【问题标题】:Importing Java project to use in a Java Dynamic Web Project导入 Java 项目以在 Java 动态 Web 项目中使用
【发布时间】:2012-09-20 12:07:00
【问题描述】:

在我的 Java 动态 Web 项目中,我正在使用构建路径导入另一个 Java 项目,这样我就可以查询类并使用 Java 反射。在编写我的课程时,我最初通过将其作为 Java 应用程序运行来对其进行测试,并且它可以工作。但是,我现在使用同一个类作为动态 Web 项目的一部分,它似乎无法访问导入的 Java 项目。我已经尝试将它导入到我在 Eclipse 中的项目引用中,但它仍然无法正常工作并输出以下错误:

HTTP Status 500 - javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/q1labs/qa/selenium/widgets/WidgetHandler

--------------------------------------------------------------------------------

type Exception report

message javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/q1labs/qa/selenium/widgets/WidgetHandler

description The server encountered an internal error (javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/q1labs/qa/selenium/widgets/WidgetHandler) that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/q1labs/qa/selenium/widgets/WidgetHandler
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


root cause 

javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/q1labs/qa/selenium/widgets/WidgetHandler
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:911)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840)
org.apache.jsp.UpdatingDb_jsp._jspService(UpdatingDb_jsp.java:98)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


root cause 

java.lang.NoClassDefFoundError: com/q1labs/qa/selenium/widgets/WidgetHandler
com.q1labs.qa.xmlgenerator.controller.updatedb.DbUpdateScript.updateObjectTypes(DbUpdateScript.java:40)
com.q1labs.qa.xmlgenerator.controller.updatedb.DbUpdateScript.updateDb(DbUpdateScript.java:31)
org.apache.jsp.UpdatingDb_jsp._jspService(UpdatingDb_jsp.java:88)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

【问题讨论】:

    标签: java eclipse dynamic import project


    【解决方案1】:

    检查您的项目属性>部署程序集配置。转到添加并选择项目 > 下一步并选择您的项目。现在这将只包括您项目的类。如果您的 Java 项目包含外部或其他 JAR 引用,您还必须通过将它们复制到您的 WEB-INF/lib 或将它们添加为外部 JAR 来手动将它们包含在您的新 Web 项目中。如果您执行第二个,请不要忘记在 Order & Export 选项卡中标记它们。

    【讨论】:

    • 我查看了部署程序集并没有添加我的 Java 构建路径条目,但是我正在导入的项目没有出现在 Java 构建路径条目中,可能是因为它不是 .JAR 而是一个未编译的项目。
    • Deployment Assembly 窗口中,当您单击 Add... 时,而不是选择 Java Build Path Entries,选择 Project > Next 并在那里选择它。这应该可以做到。如果可行,我会更新答案。
    • 这似乎解决了问题,却遇到了新的错误消息:HTTP Status 500 - javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/openqa/selenium/NoAlertPresentException
    • 该设置是否作为 java 项目的 jar 引用?如果是,您只需手动将其包含在您的 Web 项目的 WEB-INF/lib 中,或将其作为外部 JAR 引用(不要忘记在“订购和导出”设置中检查它)。通过标准 Eclipse 选项设置依赖项非常困难,我建议在此上使用 Maven。
    • 我有一个用于自动化测试的项目,其中添加了 jar 文件。我想要做的是构建应用程序的前端,我有一个脚本,它将检查特定类以了解它们包含的方法,然后将其保存到数据库中。我对经常更新的外部 jar 文件不感兴趣,我想要我的脚本做的就是加载并不总是已知的特定类并检查它们的内容。
    【解决方案2】:

    你能打开部署的war文件并检查这个类文件是否位于WEB-INF/classes中吗?如果是这种情况,请在 buildpath 中检查您的 source tab

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-01
      • 1970-01-01
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 2015-09-07
      相关资源
      最近更新 更多