クライアントがwebserviceプロジェクトを発表し、サーバー側がwebserviceを使用する簡単な例

7532 ワード

クライアントはwebserviceプロジェクトを発表して、サーバー側はwebserviceの簡単な例を使用します.
クライアント
説明:mainを実行して、wsdlアドレスを生成します.
package com.wsService.third;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;

/**
 * 
 * @ClassName MobileService
 * @Description      ,  webservice      
 * 1、  :@webservice
 * 2、  :EndPoint
 * @author Try_go
 * @Date 2017 4 6    10:22:43
 * @version 1.0.0
 */

/**
 *     :
 * @WebMethod(operationName="")      
 * @WebResult(name="")        
 * @WebParam(name="")         @WebService(serviceName=""      
 *                    ,targetNamespace="")       ,    (  )
 * 
 * @WebService           webservice  
 * @WebMethod(exclude=true)          
 */
@WebService(serviceName = "mobileManager", targetNamespace = "http://tttest.ws.com")
public class MobileService {
    @WebMethod(operationName = "getMobileInfo")
    public @WebResult(name = "mobile") Mobile getPhoneInfo(@WebParam(name = "osName") String osName) {
        Mobile phone = new Mobile();
        if (osName.endsWith("android")) {
            phone.setName("android");
            phone.setOwner("google");
            phone.setTotal(70);
        } else if (osName.endsWith("ios")) {
            phone.setName("ios");
            phone.setOwner("apple");
            phone.setTotal(20);
        } else if (osName.endsWith("windows phone")) {
            phone.setName("windows phone");
            phone.setOwner("microsoft");
            phone.setTotal(10);
        }
        return phone;
    }

    @WebMethod(exclude = true)
    public void hello(String hello) {
        System.out.println("  " + hello);
    }

    public static void main(String[] args) {
        String address = "http://127.0.0.1:8080/ws/MobileService";
        /**
         *   webservice   publish       ,          
         */
        Endpoint.publish(address, new MobileService());
        System.out.println("wsdl  :" + address + "?WSDL");
    }

}
エンティティクラス
package com.wsService.third;

public class Mobile {
    private String name; //     
    private String owner; //   
    private int total;  //     
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getOwner() {
        return owner;
    }
    public void setOwner(String owner) {
        this.owner = owner;
    }
    public int getTotal() {
        return total;
    }
    public void setTotal(int total) {
        this.total = total;
    }
}
職務に服する
説明:まず、wsmeport方式でローカルエージェントを生成し、アドレスはクライアントで生成されたwsdlアドレスを使って、生成されたコードをプロジェクトにコピーします.サービスのコードを実行していますが、結果を得るためには、クライアントは動作状態を維持します.
package com.ws.third;

/**
 * 
 * @ClassName TestPhone
 * @Description   third     webservice   
 * @author Try_go
 * @Date 2017 4 6    10:52:59
 * @version 1.0.0
 */
public class TestMobile {
    public static void main(String[] args) {

        //     
        MobileManager ws = new MobileManager();
        //     
        MobileService port = ws.getMobileServicePort();
        //     ,   
        Mobile info = port.getMobileInfo("ios");
        System.out.println(info.getName() + info.getOwner() + info.getTotal());
    }
}