CXF實現服務的發布
在之前也謝了幾篇關于CXF進行服務的發布的文章,基于Spring以及基于jetty
本文同樣實現基于Jetty內置服務器進行服務的發布,主要解決的問題就是發布出來的WSDL中方法參數名稱不一致的問題
接口文件:
package demo.hw.server; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebResult; import javax.jws.WebService; @WebService public interface HelloWorld { @WebMethod @WebResult(name="callBack") String sayHi(@WebParam(name="username")String username); }
實現類:
package demo.hw.server; public class HelloWorldImpl implements HelloWorld { public String sayHi(String text) { System.out.println("sayHi called"); return "Hello " + text; } }
發布:(1)
package demo.hw.server; import javax.xml.ws.Endpoint; public class Server { public static void main(String args[]) throws Exception { Endpoint endpoint = Endpoint.publish( "http://localhost:8080/WSCXF/helloService", new HelloWorldImpl());// 這里是實現類 System.out.println("WS發布成功!"); } }
發布(2)
HelloWorldImpl helloworldimp = new HelloWorldImpl(); JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean(); factoryBean.setAddress("http://localhost:8080/WSCXF/helloService"); factoryBean.setServiceClass(HelloWorld.class);//接口類 factoryBean.setServiceBean(helloworldimp); factoryBean.create();
實現結果:
http://localhost:8080/WSCXF/helloService?wsdl
總結: 在之前探究了一段時間,實現了Spring無注解的發布服務,并實現了攔截器等功能,但是現在項目需求能夠對服務進行控制,能夠控制啟動和停止,于是個人認為利用內置 Jetty服務器則可以實現對服務的控制,這樣的話就需要進行注解編程,個人在探索中學習,如果童靴你又好的方法,希望能夠分享一下。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!