webService 可以將應用程序轉換成網絡應用程序。是簡單的可共同操作的消息收發框架。
基本的webService平台是 XML 和 HTTP。
HTTP 是最常用的互聯網協議;
XML 是 webService 的基礎,因為可以用於不同平台和編程語言之間。
webService平台的元素:
SOAP(簡易對象訪問協議);
UDDI(通用描述、發現、整合);
WSDL(web service 描述語言);
webService 有兩種類型的應用
1)可重復使用的應用程序組件:有些功能是不同應用程序常常用到的,比如:天氣預報。webService可以把應用程序組件當做服務來提供;
2)連接現有軟件:通過為不同程序提供一種鏈接其數據的途徑,解決協同辦公的問題。
簡單程序:
創建一個service 的 web service project工程 :
package com.service;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService //將類標注為webService
public class Test {
@WebMethod //標注客戶端調用的方法
public String getString (String name){
return name.toUpperCase();
}
public static void main(String[] args) {
//發布到服務端 參數1:網絡協議+ip+端口號(不能被占用)+上下文根+調用方法 參數2:new一個本類的實例
Endpoint.publish("http://localhost:8085/Test", new Test());
//標志著編譯成功結束 可不寫
System.out.println("OK");
}
}
//配置文件我現在還沒有搞明白 如果不配配置測試地址就無響應
配置一個xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 注冊組件掃描器 -->
<context:component-scan base-package="com.service" />
</beans>
測試地址:http://localhost:8085/Test?wsdl
利用 webService soapUI 4.5.2軟件 鏈接http://localhost:8085/service/Test 自動生成應用服務
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.com/">
<soapenv:Header/>
<soapenv:Body>
<ser:getString>
<!--Optional:-->
<arg0>yyyy</arg0> //<arg0>?</arg0> 原始顯示是? 為需求參數
</ser:getString>
</soapenv:Body>
</soapenv:Envelope>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:getStringResponse xmlns:ns2="http://service.com/">
<return>YYYY</return> //<return>?</return> 原始顯示是? 為處理結果
</ns2:getStringResponse>
</S:Body>
</S:Envelope>
2、命令提示窗口執行生成命令。
先創建一個client 的web service project 工程
打開 命令窗口 輸入
格式:wsimport -s "src目錄" -p “生成類所在包名” -keep “wsdl發布地址”
1)"src目錄"地址不可含空格
2)“wsdl發布地址”不要漏了“?wsdl”
效果:
wsimport -s E:\WorkSpace\maven\client\src -p com.client -keep http://localhost:8085/Test?wsdl
正在解析 WSDL...
正在生成代碼...
正在編譯代碼...
刷新項目就可以看到生成的client代碼
但是client 客戶端代碼會有亂碼問題目前還沒有解決