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"));
}
}