當前位置:首頁 > IT技術 > Web編程 > 正文

2.2 cxf發(fā)布 webservice
2021-09-14 16:36:30

一言以蔽之:WebService是一種跨編程語言和跨操作系統(tǒng)平臺的遠程調用技術。

所謂跨編程語言和跨操作平臺,就是說服務端程序采用java編寫,客戶端程序則可以采用其他編程語言編寫,反之亦然!跨操作系統(tǒng)平臺則是指服務端程序和客戶端程序可以在不同的操作系統(tǒng)上運行。
所謂遠程調用,就是一臺計算機a上 的一個程序可以調用到另外一臺計算機b上的一個對象的方法
發(fā)布方式:4種
CXF方式
Xfire方式
AXIS2方式
AXIS1方式
服務端 cxf方式
所需jar包
接口
接口必須要用@WebService注解
@WebService
public interface HelloWorld {
String sayHi(String name);
}
實現(xiàn)類
@WebService(endpointInterface="com.ywx.HelloWorld",serviceName="HelloWorldWs")//指定webservice所實現(xiàn)的接口以及服務名稱
public class HellowWorlds implements HelloWorld{
@Override
public String sayHi(String name) {
return name+"您好!現(xiàn)在時間是:"+new Date();
}
?
}
發(fā)布(暴露接口)
public class ServiceMain {
public static void main(String args[]){
HelloWorld hw = new HellowWorlds();
//調用Endpoint的publish方法發(fā)布Web Service
//Endpoint.publish("http://localhost:9080/vashon", hw);
Endpoint.publish("http://192.168.106.181:9080/vashon", hw);
System.out.println("Web Service暴露成功!");
}
}
:對于本機地址 http://192.168.106.181:9080/vashon?wsdl 和 http://localhost:9080/vashon?wsdl 不一樣,后者在別的電腦上不能訪問
接口/實現(xiàn)類/發(fā)布也可以寫在一個類中 如下所示
@WebService
public class Function {
public String transWords(String words){
String res = "";
for(char ch : words.toCharArray()){
res += ch+",";
}
return res;
}
public static void main(String[] args) {
// 使用Endpoint(終端)類發(fā)布webservice
Endpoint.publish("http://localhost:9080/service/function", new Function());
System.out.println("Publish Success");
}
}
?
客戶端(新建java項目或動態(tài)項目后按步驟自動生成)
右鍵->new->other->Web Service Client
在Service definition中輸入發(fā)布的接口地址 如:http://192.168.106.181:9080/vashon?wsdl
客戶端生成后 需要新建一個測試的類:如
public class TestService {
public static void main(String[] args) {
// TODO Auto-generated method stub
HelloWorldProxy h = new HelloWorldProxy();
try {
String s = h.sayHi("鄭亮");
System.out.println("調webservice:"+s);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
完整實例
service.rar wsWeb.rar
?
webservice加入到tomcat監(jiān)聽,實現(xiàn)服務調用
umpServlet.zip
?
?

本文摘自 :https://www.cnblogs.com/

開通會員,享受整站包年服務立即開通 >