我的工程目录全景截图:
(jar包有很多,截图里只是一部分,请无视person.java文件,那个是后来测试用的)
下面我们来一步步搭建这个webservice 。
[1]eclipse新建工程 dynamic web project
引入cxf等一系列jar包,并注意文件摆放位置(可以登陆CXF官方站点:http://cxf.apache.org/下到。有空过些时候考虑放个下好的压缩包文件链接上来)
[2]新建一个接口类 IHelloCXFService.java
package cxf.server;
import javax.jws.WebService;
import cxf.model.Person;
@WebService
public interface IHelloCXFService {
public String sayHello(String name);
}
[3]新建一个java类来继承这个接口 IHelloCXFService.java
package cxf.server;
import javax.jws.WebService;
import cxf.model.Person;
@WebService
public 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来发布webservice
JaxWsServerFactoryBean 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
服务端控制台输出结果:
客户端控制台输出结果:
测试成功。