我的工程目录全景截图:
(jar包有很多,截图里只是一部分,请无视person.java文件,那个是后来测试用的)
下面我们来一步步搭建这个webservice 。
[1]eclipse新建工程 dynamic web project
引入cxf等一系列jar包,并注意文件摆放位置(可以登陆CXF官方站点:下到。有空过些时候考虑放个下好的压缩包文件链接上来)
[2]新建一个接口类 IHelloCXFService.java
package cxf.server;import javax.jws.WebService;import cxf.model.Person;@WebServicepublic interface IHelloCXFService { public String sayHello(String name); }
[3]新建一个java类来继承这个接口 IHelloCXFService.java
package cxf.server;import javax.jws.WebService;import cxf.model.Person;@WebServicepublic class IHelloCXFServiceImpl implements IHelloCXFService { public String sayHello(String name) { System.out.println("sayHello方法被调用"); return "你好!" + name; } }
[4]写一个java类来发布这个webservice MainServer.java
package cxf.server;import javax.xml.ws.Endpoint;import org.apache.cxf.endpoint.Server;import org.apache.cxf.jaxws.JaxWsServerFactoryBean;public class MainServer{public static void main(String[] args){//通过CXF提供的JaxWsServerFactoryBean来发布webserviceJaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();factory.setServiceClass(IHelloCXFServiceImpl.class);factory.setAddress("http://localhost:8080/HelloWorld");Server server = factory.create();server.start();}}
[5]写到这里,右击mainserver.java文件,选择java application运行
访问一下 http://localhost:8080/HelloWorld?wsdl
如果出现如下类似界面,则说明之前操作正确,我们继续。
[6]编写一个客户端测试类 HelloWorldClient.java
package cxf.client;import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;import cxf.model.Person;import cxf.server.IHelloCXFService;public class HelloWorldClient{ public static void main(String[] args) { JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.setAddress("http://localhost:8080/HelloWorld"); factory.setServiceClass(IHelloCXFService.class); IHelloCXFService helloWorld = (IHelloCXFService) factory.create(); System.out.println(helloWorld.sayHello("yuyu")); }}
[7]到此为止,代码部分已全部写完。
下面跑一遍测试
先运行mainserver.java
再运行HelloWorldClient.java
服务端控制台输出结果:
客户端控制台输出结果:
测试成功。