簡體   English   中英

Java JAX-RPC NoClassDefFoundError

[英]Java JAX-RPC NoClassDefFoundError

我是JAX-RPC的新手。 我嘗試在RAD 7.0中創建一個簡單的Java Bean,然后遍歷了創建JAX-RPC Web服務的選項。 我的方法如下。

 public byte[] getData(byte[] argument) {

    <Customclass> proxy = new <Customclass>();
    List outputList = new ArrayList();
    try {
        // Call a method on proxy
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    byte[] output = getBytesFromObject(outputList);
    return output;

}

1)如果我不導入任何依賴類,從客戶端調用時,這很好。 2)但是,當我導入一個依賴類(上面顯示的Customclass)時,我看到了以下異常

 [9/12/09 9:59:00:182 IST] 00000026 UserException E   WSWS3228E: Error: Exception: WebServicesFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
 faultString: java.lang.NoClassDefFoundError: <Customclass>
 faultActor: null
 faultDetail: 
java.lang.NoClassDefFoundError: 

打包-上面的方法駐留在一個應用程序(ear)中,該應用程序具有包含在ear中的jar文件的所有必需類。 從客戶端-JAX-RPC客戶端調用上述方法。

如果有人可以指導我,將不勝感激。

是/ lib文件夾中的jar還是部署描述符中指定的文件夾? 以下摘自JSR-000244 JavaTM平台企業版5規范的第8.2.1節。

EE.8.2.1

捆綁的庫可以通過以下方式引用與應用程序捆綁的庫:

  1. JAR格式文件(例如.jar文件,.war文件或.rar文件)可以通過在引用JAR文件的清單的Class-Path標頭中命名引用的.jar文件或目錄來引用.jar文件或目錄。文件。 使用相對於引用JAR文件的URL的URL命名引用的.jar文件或目錄。 清單文件在JAR文件中名為META-INF / MANIFEST.MF。 清單文件中的Class-Path條目的形式為Class-Path:jar文件列表或目錄列表,按空格分隔

  2. .ear文件可能包含一個目錄,其中包含打包在JAR文件中的庫。 .ear文件的部署描述符的library-directory元素包含此目錄的名稱。 如果未指定庫目錄元素,或者.ear文件不包含部署描述符,則使用名為lib的目錄。 空的library-directory元素可用於指定沒有庫目錄。 該目錄中所有擴展名為.jar的文件(但不包括子目錄)必須對EAR文件中打包的所有組件(包括應用程序客戶端)可用。 這些庫可以使用本文描述的任何技術引用與應用程序捆綁在一起或單獨安裝的其他庫。

  3. Web應用程序可能在WEB-INF / lib目錄中包含庫。 有關詳細信息,請參見Servlet規范。 這些庫可以使用本文描述的任何技術引用與應用程序捆綁在一起或單獨安裝的其他庫。

另外,將CustomClass變量聲明放入try / catch並查看是否獲得有關該異常的更多信息。

我遇到了XStream-它允許我按原樣使用現有對象,並將它們作為xml字符串傳遞到服務器,然后從服務器端的xml字符串重新創建對象。

我猜這是從客戶端到服務器傳遞Map,List對象的一種方法。

我計划現在將服務器模塊移到遠程盒中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM