2016-11-09 68 views
0

我用eclipse製作了一個簡單的web服務。我真的不明白爲什麼它返回null。我的Web服務存根返回null

這裏的Web服務服務器:

package server; 

import java.util.HashMap; 
import java.util.Set; 

import entity.Book; 

public class Library { 
    private HashMap<String, Book> libraryHM = new HashMap<>(); 

    public Library() { 

    } 

    public Book add(String id, String name) { 
     return libraryHM.put(id, new Book(id, name)); 
    } 

    public Book[] get(){ 
     Set<String> keys = libraryHM.keySet(); 

     Book[] bookArray = new Book[3]; 
     int i = 0; 
     for(String key : keys) { 

      bookArray[i++] = libraryHM.get(key); 
     } 

     return bookArray; 
    } 

} 

書類:

package entity; 

public class Book { 
    private String id; 
    private String name; 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public Book(){ 

    } 

    public Book(String id, String name) { 
     this.id = id; 
     this.name = name; 
    } 

    @Override 
    public String toString() { 
     // TODO Auto-generated method stub 
     return "Id: "+ id + ", name " + name; 
    } 
} 

而且客戶端:

public class Client { 

    public static void main(String[] args) throws ServiceException, RemoteException { 
     // TODO Auto-generated method stub 
     Library l = new LibraryServiceLocator().getLibrary(); 

     ((LibrarySoapBindingStub) l).setMaintainSession(true); 

     l.add("1", "hello1"); 
     l.add("2", "hello2"); 
     l.add("3", "hello3"); 

     Book[] book = l.get(); 

     for(int i =0; i < 3; i++) { 
      System.out.println(book[i]); 
     } 
    } 

} 

來創建Web服務,我做了以下行動:

new - > dyanmic web項目 - >編寫圖書館和書類。

從動態web項目中選擇庫 - >新建 - > Web服務 - >選擇2種方法 - >完成

然後是Web服務客戶端: 選擇一個新的項目 - > Web服務客戶端 - >選擇庫WSDL - >完成

當我在客戶端運行的主要我有:

十一月09,2016 7:45:45 PM org.apache.axis.utils.JavaUtils isAttachmentSupported AVERTISSEMENT:無法找到所需的類 (javax.activation.DataHandler和javax.mail.internet.MimeMultipart)。 附件支持已禁用。 空 空 空

爲什麼?

回答

0

您需要在您的類路徑中包含java郵件和激活jar。您可以谷歌類名稱並將其導入到您的代碼中。 Eclipse的IDE將一旦你有了到位的罐子自動爲您做到這一點,按Ctrl + Shift + O

我知道至少這個jar,可能另外一個是必需的 - 你可以下載郵件罐子here

+0

我不明白我沒有任何遺漏的依賴。它是什麼 ? –

+0

您顯然已經失去了依賴關係,正如您的錯誤所證明的那樣。 Java郵件API是一個依賴項,可以作爲jar文件下載。一旦完成,你已經將它包含在你的類路徑中,你可以導入缺失的類。 – Matt1776

+0

我會嘗試你的解決方案,但我有這個「AVERTISSEMENT」在其他項目,但它仍然工作。你有其他想法嗎? –