第二种发布方式: 发布一个带接口的webservice
使用cxf 框架提供的类 jaxWsServerFactoryBean 发布webService
jaxWsServerFactoryBean 是 ServerFactoryBean 的子类...
接口类需要注解
可以添加输入输出拦截器
发布的是soap版本1.2的。
package cn.itcast.cxf.server;import org.apache.cxf.interceptor.LoggingInInterceptor;import org.apache.cxf.interceptor.LoggingOutInterceptor;import org.apache.cxf.jaxws.JaxWsServerFactoryBean;import cn.itcast.webservice.userService.UserService;import cn.itcast.webservice.userService.UserServiceImpl;/** * * 使用cxf 提供的类 JaxWsServerFactoryBean 来发布一个带接口的webservice ... * * @ 作者 zhuwu@itcast.cn * */public class PublishUserService { /** * @param args */ public static void main(String[] args) { //创建发布服务的 类... JaxWsServerFactoryBean bean=new JaxWsServerFactoryBean(); //设置对外的访问地址 bean.setAddress("http://192.168.9.100:7418/userService"); bean.setServiceClass(UserService.class);//设置接口类型... bean.setServiceBean(new UserServiceImpl());//设置接口的实现类... //我们可以在发布服务的时候添加消息拦截器 //拦截客户端往服务端 发送的请求的消息 bean.getInInterceptors().add(new LoggingInInterceptor()); //拦截服务端往客户端返回的消息... bean.getOutInterceptors().add(new LoggingOutInterceptor()); bean.create(); }}
package cn.itcast.webservice.userService;import javax.jws.WebService;import javax.xml.ws.BindingType;import javax.xml.ws.soap.SOAPBinding;@WebService@BindingType(value=SOAPBinding.SOAP12HTTP_BINDING)public interface UserService { public void addUser(String userId); public String getUserById(int id); }
package cn.itcast.webservice.userService;public class UserServiceImpl implements UserService { @Override public void addUser(String userId) { System.out.println("小何"); } @Override public String getUserById(int id) { return "如果认定了一件事情,那么一定要把它做到最好,加油,java!"; }}