1.....................................创建一个Web动态工程
2....................................将CXF框架的lib导入工程
3...................................开发一个接口HelloWorld.java
package Server;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public interface HelloWorld {
@WebMethod
public String sayHi(String text);
}
4.........................................实现该接口
package Server;
import javax.jws.WebService;
@WebService
public class HelloWorldImpl implements HelloWorld {
public String sayHi(String text) {
System.out.println("进入Server");
return "Hi" + text;
}
}
5....................................创建ServiceTest.java用来发布接口
package Server;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
public class ServiceTest {
public static void main(String[] args) {
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
factory.setServiceClass(HelloWorld.class);
factory.setAddress("http://localhost:8080/HelloWorld");
Server server = factory.create();
server.start();
}
}
6.................................创建ClientTest.java用来调用接口(这里为了简化所以直接在同一个项目中写了)
package Server;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
public class ClientTest {
public static void main(String[] args) throws Exception {
JaxWsDynamicClientFactory ser = JaxWsDynamicClientFactory.newInstance();
Client client =ser.createClient("http://localhost:8080/HelloWorld?wsdl");
Object[] o = client.invoke("sayHi", "sa");
System.out.println(o[0]);
}
}
7..................................线运行ServiceTest.java,如果能够在浏览器输入http://localhost:8080/HelloWorld?wsdl中看到wsdl文件说明发布成功了
8.................................运行ClientTest.java,如果控制台出现了Hisa返回结果,那么我们就完成了这个测试。
9...............................再多加一种客户端调用方法:
package Server;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
public class ClientTest {
public static void main(String[] args) throws Exception {
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(HelloWorld.class);
factory.setAddress("http://localhost:8080/HelloWorld");
HelloWorld hello = (HelloWorld) factory.create();
System.out.println(hello.sayHi("sa"));
}
}