『壹』 CXF方式發布WebService服務,spring-cxf.xml中配置的發布服務方式區別,分別在什麼情況下使用
只是配置的方式不同
~
~
~
『貳』 如何使用CXF調用webservice介面
1、 JaxWsProxyFactoryBean
簡介:調用方式採用了和RMI類似的機制,即客戶端直接伺服器端提供的服務介面(interface),CXF通過運行時代理生成遠程服務的代理對象,在客戶端完成對webservice的訪問;幾個必填的欄位:setAddress-這個就是我們發布webservice時候的地址,保持一致
缺點:這種調用service的好處在於調用過程非常簡單,就幾行代碼就完成一個webservice的調用,但是客戶端也必須依賴伺服器端的介面,這種調用方式限制是很大的,要求伺服器端的webservice必須是java實現--這樣也就失去了使用webservice的意義
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
public class Client {
public static void main(String[] args) {
JaxWsProxyFactoryBean bean = new JaxWsProxyFactoryBean();
bean.setServiceClass(HelloWorldService.class);
bean.setAddress("http://localhost:9090/helloWorldService");
HelloWorldService helloWorldService = (HelloWorldService)bean.create();
String result = helloWorldService.sayHello("Kevin");
System.out.println(result);
}
2、JaxWsDynamicClientFactory [Dynamci:動態的]
簡介:只要指定伺服器端wsdl文件的位置,然後指定要調用的方法和方法的參數即可,不關心服務端的實現方式。
wsdl [Web Services Description Language]網路服務描述語言是Web Service的描述語言,它包含一系列描述某個web service的定義
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
public class Client2 {
public static void main(String[] args) throws Exception {
JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();
Client client = clientFactory.createClient("http://localhost:9090/helloWorldService?wsdl");
Object[] result = client.invoke("sayHello", "KEVIN");
System.out.println(result[0]);
}
}
3、JaxWsServerFactoryBean
用JaxWsServerFactoryBean發布,需要獨立的jetty包。
註:具體可以參考CXF API ----http://cxf.apache.org/docs/dynamic-clients.html
『叄』 基於cxf的webservice服務端怎麼重新發布
什麼怎麼發布?介面,實現類寫好了就可以發布了啊。
項目沒有引入CXF包就是默認JDK發布,
引入後自動變成CXF發布啊
可以main方法發布,也可以在項目啟動時發布,也可以在某一操作下發布啊
使用java.ws的類的Enpoint.publish(address,new xxxImpl);發布
『肆』 關於使用CXF 發布WebService的問題
經過我幾年的CXF開發經驗來看,發布服務確實有兩種方式,一種是通過javax.xml.ws.Endpoint這個類,一種是通過Server
配置文件中可以使用<jaxws:endpoint> 或者<jaxws:server>來發布,效果差不多,至於區別。。
請看:
First, they are all for the server side configuration.
Second, jaxws:endpoint is coming from JAXWS API, and it is used to
configure the org.apache.cxf.jaxws.EndpointImpl which extends
javax.xml.ws.Endpoint.
jaxws:server is for configuring the JaxWsServerFactoryBean, which is
coming from the Xfire API.
For the user who has the Xfire using experience, I think they will
prefer to use jaxws:server tag.
For the JAXWS API fans, jaxws:endpoint will be they first choice.
There are not much difference between the jaxws:endpoint and
jaxws:server, since the EndpointImpl is a wrapper class for the
JaxWsServerFactoryBean.
『伍』 如何用java調用cxf webservice介面
WebService CXF客戶端報 java.lang.RuntimeException: Cannot create a secure XMLInputFactory 異常,查了許多網路關於該問題的解決辦法,很多都說缺少包問題,但問題是我的包都存在,我用的是apache-cxf-2.7.6,經過不懈努力終於解決了,我的服務端用的是web project,客戶端用的是java project,客戶端jar包是引用其它地方的,後來建一個web project客戶端,把jar直接復制到project的lib目錄下就行了,jdk用的是1.7,客戶端依賴的介面用wsdl2java生成的。
『陸』 如何使用CXF調用webservice介面
1、使用axis調用
2、使用xfire調用
3、使用cxf調用
項目中,採用axis進行調用,記錄如下,備忘:
ps教程:想當年的時候是用的xfire方式調用的,結果沒做記錄,現在已經完全記不得怎麼玩了。所以說要多寫博客啊 t_t
版本說明:
aixs版本:axis-bin-1_4.zip
java環境略
第一步:確保wsdl文件可用,文中為獲取到sendsmsservice.wsdl,當然url的也行。
第二步:執行生成客戶端代碼的腳本。腳本內容為:
set axis_lib=d:axis-1_4lib
set java_cmd=java -djava.ext.dirs=%axis_lib%
set output_path=.
set package=info.jyzh.wap.liaoning.push
%java_cmd% org.apache.axis.wsdl.wsdl2java sendsmsservice.wsdl -o%output_path% -p%package% -t
『柒』 如何搭建基於cxf的webservice服務端
方法/步驟
如果是搭建web項目,首先可以從官網上示常式序,將裡面的web.xml文件直接替換到新建的項目。進入apache官網,點擊project
點擊選擇下載的鏡像文件,通過這個鏈接就可以進入apache下所有開源項目下載地址界面。
找到cxf項目,選擇合適的版本,可以下載帶有源碼或者不帶有源碼的程序示例
創建maven工程。打開eclipse,點擊File--新建--Maven project就可以創建maven工程。
打開maven項目的pom.xml文件,將cxf需要的jar包添加到依賴中。
(由於文件內容比較多,如果你有需要,可以留言)
編寫對外公布的介面和實現類。編寫對外公布的介面,同時在介面的上面添加@Webservice的註解。編寫實現類也要添加。
啟動項目,本示例採用java application的方式啟動,啟動之後,在瀏覽器中輸入地址就可以訪問到wsdl文件內容。
『捌』 求助如何使用servicemixcxf發布webservice
1.創建一個Dynamic Web project,名為HelloWorld
2.在src中新建package,包名為net.kentop.ws
3.在net.kentop.ws包中新建class,類名為HelloWorld
4.修改HelloWorld.java文件如下
[java] view plain
package net.kentop.ws;
public class HelloWorld {
public String sayHello(String name) {
return "Hello " + name;
}
}
5.為HelloWorld項目創建Server,並啟動Server
6.為HelloWorld.java文件創建WebService
7.測試webservice
點擊Operations Name為sayHello的鏈接
在文本框中輸入數據,點擊「GO」按鈕
下方會顯示如下信息,表示測試成功
8.創建名為servicemix-cxf-bc-demo的Maven Project項目根目錄
9.在根項目下創建名為cxf-bc-su-demo的servicemix-cxf-bc-service-unit
10.將HelloWorld項目下WebContent/wsdl/HelloWorld.wsdl文件拷貝到cxf-bc-su-demo/resources目錄下,並將service.wsdl刪除
11.將HelloWorld.wsdl如下代碼
[xhtml] view plain
<wsdl:service name="HelloWorldService">
<wsdl:port binding="impl:HelloWorldSoapBinding" name="HelloWorld">
<wsdlsoap:address location="localhost:8080/HelloWorld/services/HelloWorld"/>
</wsdl:port>
</wsdl:service>