天天看點

ideaWebservice服務端與用戶端

項目位址

spring webServices

一、釋出一個webservice服務(jdk原生)

1.建立一個webService項目及其檔案結構

1.1點選file->Project

ideaWebservice服務端與用戶端

1.2修改項目名稱,點選finsh即建立webservice服務端項目

ideaWebservice服務端與用戶端

1.3檔案整體結構

ideaWebservice服務端與用戶端

2.編寫服務接口

package com.ly.web.service;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

@WebService(name = "Login",// 定義Port名稱
        serviceName = "MyService", // 修改WebService服務名稱
        targetNamespace = "http://com.soft.ws/my" // 定義命名空間,預設為倒置的包名
)
public interface MyService {
    // 提供一個對外公開的服務
    @WebMethod(operationName = "authorization")
    // 修改方法名
    String authorization(@WebParam(name = "userId") String userId,
                         @WebParam(name = "password") String password);
           

3.服務實作類(注意傳回的資料,就是用戶端接收的資料)

package com.ly.web.service.imp;

import com.ly.web.service.MyService;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

/**
 * 服務實作類
 */
@WebService(endpointInterface = "com.ly.web.service.MyService",
        name = "Login",// 定義Port名稱
        serviceName = "MyService", // 修改WebService服務名稱
        targetNamespace = "http://com.soft.ws/my" // 定義命名空間,預設為倒置的包名
//服務實作類和接口的注解要一樣全
)
public class MyServiceImpl implements MyService {

    @WebMethod(operationName = "authorization" // 修改方法名
    )
    @Override
    public String authorization(
            @WebParam(name = "userId") String userId,
            @WebParam(name = "password") String password) {
        if ("admin".equals(userId) && "123456".equals(password)) {
            //用戶端接收的資料
            return "http://localhost:8089/myservice";
        }
        return "error";
    }

}


           

4.釋出服務

運作下面的代碼 釋出WebService服務

package com.ly.web.main;

import com.ly.web.service.MyService;
import com.ly.web.service.imp.MyServiceImpl;

import javax.xml.ws.Endpoint;

public class MyPublisher {
    public static void main(String[] args) {
        //指定服務url
        String url = "http://localhost:8089/myservice";
        //指定服務實作類
        MyService server = new MyServiceImpl();
        //采用指令行釋出者Endpoint釋出服務
        Endpoint.publish(url, server);
    }
}
           

5.浏覽器檢視是否釋出成功

打開浏覽器位址欄輸入:http://127.0.0.1:8089/myservice?wsdl

結果如下:

ideaWebservice服務端與用戶端

二、用戶端調用方式

1、建立用戶端項目

點選file->project(注意:這裡是建立一個webservice的用戶端)

ideaWebservice服務端與用戶端

修改項目名稱,點選finsh即完成建立

ideaWebservice服務端與用戶端

2、點選finsh,預設會彈出一個視窗,如果,沒有彈出該視窗,則項目右鍵->Webservices->Genereta Java Code From Wsdl,則可彈出

ideaWebservice服務端與用戶端

該視窗如下:配置完成後,點選OK即可(該操作是自動建立用戶端代碼建立)

ideaWebservice服務端與用戶端

建立項目目錄如下:

ideaWebservice服務端與用戶端

打開WsClient.java進行編輯,(authorization(“admin”,“123456”)方法就是之前服務端定義的方法)

package com.service.main;

import com.service.MyService;
import com.service.MyServiceLocator;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;

public class WsClient {
    public static void main(String[] args) throws Exception {
        MyServiceLocator service = new MyServiceLocator();
        String tony = service.getLoginPort().authorization("admin","123456");
        System.out.println(tony);
    }
}
           

三、最後啟動webservice的服務端(先啟動)和用戶端,則會看到從服務端傳到用戶端的結果(authorization(“admin”,“123456”)),即成功

ideaWebservice服務端與用戶端