繁体   English   中英

将Maven项目添加为对Java中非Maven的依赖项时,没有ClassDefFound错误

[英]No ClassDefFound Error while maven project is added as dependency to a non-maven in java

正在尝试开发Axis2 Web服务。 我创建了一个动态Web项目,以从WSDL生成我的Web服务类。 一旦我在Skelton实现了我的逻辑,该逻辑就具有查询数据库的代码。

所有这些数据库访问逻辑都在另一个Maven构建的项目中。 我将这个Maven构建项目作为依赖项添加到了不是Maven构建的Webservice项目的BuildPath项目BuildPath中。

当我运行此Web服务并从Soap UI该服务时,出现如下所示的“未No ClassDef Found Error ”。

[ERROR] com/sample/test/common/dao/PersonDAO
java.lang.NoClassDefFoundError: com/sample/test/common/dao/PersonDAO
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
    at java.lang.Class.getConstructor0(Class.java:2699)
    at java.lang.Class.newInstance0(Class.java:326)
    at java.lang.Class.newInstance(Class.java:308)
    at org.apache.axis2.util.Utils$8.run(Utils.java:768)
    at org.apache.axis2.java.security.AccessController.doPrivileged(AccessController.java:132)
    at org.apache.axis2.util.Utils.createServiceObject(Utils.java:765)
    at org.apache.axis2.receivers.AbstractMessageReceiver.makeNewServiceObject(AbstractMessageReceiver.java:245)
    at org.apache.axis2.receivers.AbstractMessageReceiver.getTheImplementationObject(AbstractMessageReceiver.java:282)
    at rg.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
    at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
    at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
    at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

我的网络服务代码

     public class EnrollmentServiceSkeleton implements EnrollmentServiceSkeletonInterface{

            @Autowired
            PersonDAO personDao;   // Getters and Setters.

        public EnrollmentServiceRespMessage enrollmentServiceProfile (EnrollmentServiceReqMessage enrollmentService) {

// My WebService Logic
}

将Maven项目直接作为非Maven项目的构建路径中的另一个非Maven的依赖关系,这是正确的方法吗?

Maven通过构建项目而不是将其依赖关系构建到包中来工作。 因此,使用该库的项目可以选择覆盖或排除Maven缺陷。

当包含在非maven项目中时,您需要构建包含依赖项的项目。

请参阅如何使用Maven创建具有依赖项的可执行JAR? 详细说明如何执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM