個人工程目錄全景截圖:java
(jar包有不少,截圖裏只是一部分,請無視person.java文件,那個是後來測試用的)web
下面咱們來一步步搭建這個webservice 。apache
[1]eclipse新建工程 dynamic web projectapp
引入cxf等一系列jar包,並注意文件擺放位置(能夠登錄CXF官方站點:http://cxf.apache.org/下到。有空過些時候考慮放個下好的壓縮包文件連接上來)eclipse
[2]新建一個接口類 IHelloCXFService.java測試
package cxf.server; import javax.jws.WebService; import cxf.model.Person; @WebService public interface IHelloCXFService { public String sayHello(String name); }
[3]新建一個java類來繼承這個接口 IHelloCXFService.javacode
package cxf.server; import javax.jws.WebService; import cxf.model.Person; @WebService public class IHelloCXFServiceImpl implements IHelloCXFService { public String sayHello(String name) { System.out.println("sayHello方法被調用"); return "你好!" + name; } }
[4]寫一個java類來發布這個webservice MainServer.javaserver
package cxf.server; import javax.xml.ws.Endpoint; import org.apache.cxf.endpoint.Server; import org.apache.cxf.jaxws.JaxWsServerFactoryBean; public class MainServer { public static void main(String[] args) { //經過CXF提供的JaxWsServerFactoryBean來發布webservice JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean(); factory.setServiceClass(IHelloCXFServiceImpl.class); factory.setAddress("http://localhost:8080/HelloWorld"); Server server = factory.create(); server.start(); } }
[5]寫到這裏,右擊mainserver.java文件,選擇java application運行xml
訪問一下 http://localhost:8080/HelloWorld?wsdl繼承
若是出現以下相似界面,則說明以前操做正確,咱們繼續。
[6]編寫一個客戶端測試類 HelloWorldClient.java
package cxf.client; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; import cxf.model.Person; import cxf.server.IHelloCXFService; public class HelloWorldClient { public static void main(String[] args) { JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.setAddress("http://localhost:8080/HelloWorld"); factory.setServiceClass(IHelloCXFService.class); IHelloCXFService helloWorld = (IHelloCXFService) factory.create(); System.out.println(helloWorld.sayHello("yuyu")); } }
[7]到此爲止,代碼部分已所有寫完。
下面跑一遍測試
先運行mainserver.java
再運行HelloWorldClient.java
服務端控制檯輸出結果:
客戶端控制檯輸出結果:
測試成功。