前提:JDK環境變量須配置
有的公司的員工win系統的分配的賬戶權限不夠,導致計算機右鍵時,沒有“屬性”菜單,也就無法更改環境變量,因此可以通過【控制面板\用戶帳戶\用戶帳戶】路徑更改環境變量
一、寫wsdl文件(自定義)
附上wsdl教程http://www.w3school.com.cn/wsdl/index.asp
根據需求配置相應的<portType><message><types><binding>,具體細節可以參考網上資料,我也不是特別清楚!下面是常用的查詢用戶信息簡單的demo:
<?xml version='1.0' encoding='UTF-8'?>
<wsdl:definitions name="QueryUserInfoService"
targetNamespace="http://hr.soa.csg.cn" xmlns:ns1="http://cxf.apache.org/bindings/xformat"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://hr.soa.csg.cn"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified" targetNamespace="http://hr.soa.csg.cn"
xmlns:tns="http://hr.soa.csg.cn" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="queryUserInfoRequest" type="tns:QueryUserInfoRequest" />
<xs:complexType name="QueryUserInfoRequest">
<xs:sequence>
<xsd:element minOccurs="0" name="userId" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="queryUserInfoResponse" type="tns:QueryUserInfoResponse" />
<xs:complexType name="QueryUserInfoResponse">
<xs:sequence>
<xs:element minOccurs="0" name="replyCode" type="xs:string" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="user"
nillable="true" type="tns:User" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="User">
<xs:sequence>
<xs:element name="userId" type="xs:string" />
<xs:element name="age" type="xs:string" />
<xs:element name="name" type="xs:string" />
<xs:element name="email" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
<!--查詢用戶信息-->
<wsdl:message name="queryUserInfoRequest">
<wsdl:part name="queryUserInfoRequest" element="tns:queryUserInfoRequest" />
</wsdl:message>
<wsdl:message name="queryUserInfoResponse">
<wsdl:part name="queryUserInfoResponse" element="tns:queryUserInfoResponse" />
</wsdl:message>
<wsdl:portType name="SOAServicePort">
<wsdl:operation name="queryUserInfo">
<wsdl:input message="tns:queryUserInfoRequest" />
<wsdl:output message="tns:queryUserInfoResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="SOAServiceBinding" type="tns:SOAServicePort">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="queryUserInfo">
<soap:operation style="document" soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="QueryUserInfoService">
<wsdl:port name="SOAService" binding="tns:SOAServiceBinding">
<soap:address location="http://localhost:8080/service/queryUserInfoService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
二、使用CXF工具生成代碼
1、下載cxf工具(下載二進制的壓縮包,方便執行cmd命令)如圖
下載地址:http://cxf.apache.org/download.html
2、使用wsdl2java工具生成代碼
(1)解壓包,控制檯(cmd)進入bin目錄
(2)輸入命令,執行wsdl2java
wsdl2java -p com.cxf -d e:\cxftest -all e:\createWebservice.wsdl
【注:-p後面的參數是生成代碼所在的包名,-d後面的參數是生成代碼存放的路徑,-all後面的參數是wsdl文件所在的具體目錄】
3、簡單修改代碼
所有類中註解部分有紅色標註的這一行代碼刪掉,這個地址沒用!【不刪除啓動會報錯】
4、啓動server,訪問查看wsdl(url爲發佈地址)
即第一步配置的:<soap:address location="http://localhost:8080/service/queryUserInfoService" />
到此OK,沒時間進行接口測試,大家有時間可以自己玩玩!