CXF: 入门发布HelloWorld为WebService

编写服务接口:

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;

@WebService
public interface HelloWorld {

@WebMethod
public @WebResult(name = “result”)
String sayHello(@WebParam(name = “name”) String name);

}

编写实现类:

import javax.jws.WebService;

@WebService
public class HelloWorldImpl implements HelloWorld {

@Override
public String sayHello(String name) {
System.out.println(“call me”);
return “hello ” + name;
}

}

CXF内部集成了Jetty,因此可以直接发布webservice,在浏览器中输入http://localhost:9999/helloworld?wsdl查看发布状态:

import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

public class CXFServer {

public static void main(String[] args) {
JaxWsServerFactoryBean serverFactoryBean = new JaxWsServerFactoryBean();
serverFactoryBean.setServiceClass(HelloWorldImpl.class);
serverFactoryBean.setAddress(“http://localhost:9999/helloworld”);

Server server = serverFactoryBean.create();
server.start();
}
}

使用客户端调用服务:

 

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

public class CXFClient {

public static void main(String[] args) {
JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();
factoryBean.setAddress(“http://localhost:9999/helloworld”);
factoryBean.setServiceClass(HelloWorld.class);

HelloWorld helloWorld = (HelloWorld) factoryBean.create();
System.out.println(helloWorld.sayHello(“jack”));
}
}

https://www.xuebuyuan.com/3252877.html

标签