當(dāng)前位置:首頁(yè) > IT技術(shù) > Web編程 > 正文

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

一言以蔽之:WebService是一種跨編程語(yǔ)言和跨操作系統(tǒng)平臺(tái)的遠(yuǎn)程調(diào)用技術(shù)。

所謂跨編程語(yǔ)言和跨操作平臺(tái),就是說(shuō)服務(wù)端程序采用java編寫,客戶端程序則可以采用其他編程語(yǔ)言編寫,反之亦然!跨操作系統(tǒng)平臺(tái)則是指服務(wù)端程序和客戶端程序可以在不同的操作系統(tǒng)上運(yùn)行。
所謂遠(yuǎn)程調(diào)用,就是一臺(tái)計(jì)算機(jī)a上 的一個(gè)程序可以調(diào)用到另外一臺(tái)計(jì)算機(jī)b上的一個(gè)對(duì)象的方法
發(fā)布方式:4種
CXF方式
Xfire方式
AXIS2方式
AXIS1方式
服務(wù)端 cxf方式
所需jar包
接口
接口必須要用@WebService注解
@WebService
public interface HelloWorld {
String sayHi(String name);
}
實(shí)現(xiàn)類
@WebService(endpointInterface="com.ywx.HelloWorld",serviceName="HelloWorldWs")//指定webservice所實(shí)現(xiàn)的接口以及服務(wù)名稱
public class HellowWorlds implements HelloWorld{
@Override
public String sayHi(String name) {
return name+"您好!現(xiàn)在時(shí)間是:"+new Date();
}
?
}
發(fā)布(暴露接口)
public class ServiceMain {
public static void main(String args[]){
HelloWorld hw = new HellowWorlds();
//調(diào)用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暴露成功!");
}
}
:對(duì)于本機(jī)地址 http://192.168.106.181:9080/vashon?wsdl 和 http://localhost:9080/vashon?wsdl 不一樣,后者在別的電腦上不能訪問(wèn)
接口/實(shí)現(xiàn)類/發(fā)布也可以寫在一個(gè)類中 如下所示
@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項(xiàng)目或動(dòng)態(tài)項(xiàng)目后按步驟自動(dòng)生成)
右鍵->new->other->Web Service Client
在Service definition中輸入發(fā)布的接口地址 如:http://192.168.106.181:9080/vashon?wsdl
客戶端生成后 需要新建一個(gè)測(cè)試的類:如
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("調(diào)webservice:"+s);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
完整實(shí)例
service.rar wsWeb.rar
?
webservice加入到tomcat監(jiān)聽,實(shí)現(xiàn)服務(wù)調(diào)用
umpServlet.zip
?
?

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

開通會(huì)員,享受整站包年服務(wù)立即開通 >