CXF實現服務的發布

jopen 12年前發布 | 28K 次閱讀 Apache CXF WEB服務/RPC/SOA

  在之前也謝了幾篇關于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

CXF實現服務的發布


  總結: 在之前探究了一段時間,實現了Spring無注解的發布服務,并實現了攔截器等功能,但是現在項目需求能夠對服務進行控制,能夠控制啟動和停止,于是個人認為利用內置 Jetty服務器則可以實現對服務的控制,這樣的話就需要進行注解編程,個人在探索中學習,如果童靴你又好的方法,希望能夠分享一下。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!