發布WebService的方法很多。如XFire,CFX等。現在首先介紹下怎樣通過CFX來發部一個WebService。
(1) 首先,是從Apache官方網站獲取CFX的Java包。其地址是:http://cxf.apache.org/download.html。 在該網頁上可以下載最新的CFX 的Java開發包。
(2) 其次,新建一個簡單的java工程,不必是web工程,只是通過eclipse或者myeclipse新建一個java project。將CFX的java開發包復制到該工程的classpath目錄下。
當新建的是一個web工程時,只需要將該工程復制到lib文件夾中。
(3) 在該工程中新建一個普通的接口。
package com.example.webservice;
import javax.jws.WebParam; import javax.jws.WebService; @WebService public interface HelloWorldService { public String sayHello(@WebParam(name="userName")String userName); }
注意到:上面的接口中有一個注解:@WebService,該注解表示這個是一個WebService服務
(4) 同時新建一個類,HelloWorldServiceImpl實現該接口。
package com.example.webservice;
import javax.jws.WebMethod; import javax.jws.WebService; @WebService(endpointInterface="com.example.webservice.HelloWorldService", serviceName="helloWorldService") public class HelloWorldServiceImpl implements HelloWorldService { @WebMethod public String sayHello(String userName) { System.out.println("HelloWorldServiceImp.sayHello("+userName+")"); return "Hello,"+userName; } }
注意:這個實現類中,也有注解,一個是@WebService注解,該注解中有2個部分,一個是endpointInterface="com.example.webservice.HelloWorldService",
這里的內容是上面的接口的完整包名和接口名組成的。另一個是serviceName="helloWorldService",這個是用來現實該webService的入口的,即該webservice的名稱為
helloWorldService。當調用該webservice時,其地址應該是:htt://IpAddress:port/helloWorldService
還有另一個注解:@WebMethod,該注解用來標識了webService的實現方法。
現在主要的webservice的功能已經實現了,所要做的是將webservice進行發布。發布該webservice的方法有好幾種,可以用Spring發布,也可以直接運行一個main還是發布。
現在演示的是用一個main函數發布該webservice。
新建一個類,該類中有一個main函數。
import javax.xml.ws.Endpoint; import com.lenovo.webservice.HelloWorldServiceImpl; public class ServerTest { public static void main(String[] args) { System.out.println("Starting Server"); HelloWorldServiceImpl helloWorldServiceImpl=new HelloWorldServiceImpl(); String address="http://localhost:8090/helloWorldService"; Endpoint.publish(address, helloWorldServiceImpl); System.out.println("Start success"); } }
運行該類之后,該webservice就已經發布了。
此時,可以在其他的程序中調用該webservice了。