我的Web服务存根返回null

时间:2016-11-09 18:52:05

标签: java eclipse web-services

我用eclipse做了一个简单的web服务。而且我真的不明白为什么它会让我无效。

这里是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 - &gt; dyanmic web project - &gt;写图书馆和图书班。

从动态网络项目中选择库 - &gt;新的 - &gt;网络服务 - &gt;选择2种方法 - &gt;光洁度

然后是Web服务客户端: 选择一个新项目 - &gt;网络服务客户端 - &gt;选择库wsdl - &gt;光洁度

当我在客户端运行main时,我有:

  

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

为什么?

1 个答案:

答案 0 :(得分:0)

您需要在类路径中包含java邮件和激活jar。您可以谷歌类名称并将其导入您的代码中。一旦准备好jar,Eclipse IDE将自动为您执行此操作,按Ctrl + Shift + O

我知道至少需要这个jar和其他一个jar - 你可以下载邮件jar here