簡體   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