項目位址
spring webServices
一、釋出一個webservice服務(jdk原生)
1.建立一個webService項目及其檔案結構
1.1點選file->Project
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN2XjlGcjAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL1smeORTUE1EeRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxQTO5QjN0kDMzITMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
1.2修改項目名稱,點選finsh即建立webservice服務端項目
1.3檔案整體結構
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
結果如下:
二、用戶端調用方式
1、建立用戶端項目
點選file->project(注意:這裡是建立一個webservice的用戶端)
修改項目名稱,點選finsh即完成建立
2、點選finsh,預設會彈出一個視窗,如果,沒有彈出該視窗,則項目右鍵->Webservices->Genereta Java Code From Wsdl,則可彈出
該視窗如下:配置完成後,點選OK即可(該操作是自動建立用戶端代碼建立)
建立項目目錄如下:
打開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);
}
}