最近用CXF webservice做了服务端
2016-06-08 14:53
405 查看
新建一个java 项目:
第一步导入webservice所依赖的jar包 可以http://download.csdn.net/detail/pengyong_520/9544595 去下载
第二步在项目中新增一个interface接口
@WebService
public interface HelloWebService {
String sayHi(@WebParam(name="text",targetNamespace = "http://com.py.server/", mode = WebParam.Mode.IN)String text);
String sayHiToUser(User user);
String[] SayHiToUserList(List<User> userList);
}
注意:@WebService注明是WebService接口
接口中的方法的参数一定要以这种方式,否则客户端调用的时候CXF服务端会接收不到参数的值,name:参数名称,可不写(建议写上),targetNamespace:命名空间,一定要填写上,默认是包名反过来的顺序,mode:参数类型,IN表示输入。
第三步创建一个类去实现HelloWebService 接口
@WebService(endpointInterface="com.py.server.HelloWebService",serviceName="HelloWebService")
public class HelloWebServiceImpl implements HelloWebService {
public String sayHi(@WebParam(name = "text",targetNamespace = "http://com.py.impl/", mode = WebParam.Mode.IN) String text) {
System.out.println("我是服务端----sayHi");
return "Hello,"+text;
}
public String sayHiToUser(User user) {
return "Hello,"+user.getUserName()+"你的年龄是:"+user.getAge();
}
public String[] SayHiToUserList(List<User> userList) {
// TODO Auto-generated method stub
return null;
}
}
第四步在定义一个POJO对象
public class User implements Serializable{
private String userName;
private String sex;
private Integer age;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public User(String userName, String sex, Integer age) {
this.userName = userName;
this.sex = sex;
this.age = age;
}
public User() {
}
}
第五步写一个服务类去启动webService
public class WebServiceApp {
public static void main(String[] args) {
// System.out.println("web service start");
// HelloWebServiceImpl implementor = new HelloWebServiceImpl();
// String address = "http://localhost:8080/webServiceOne";
// //Endpoint.publish(address, implementor);
// System.out.println("web service started");
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
factory.setServiceClass(HelloWebServiceImpl.class);
//address可以自定义 这个作为你要给客户端连接的地址
factory.setAddress("http://localhost:9000/ws/welcome");
//添加cfx自定义的日志拦截器
factory.getInInterceptors().add(new LoggingInInterceptor());
factory.getOutInterceptors().add(new LoggingInInterceptor());
Server server = factory.create();
server.start();
}
}
启动成功在浏览器输入http://localhost:9000/ws/welcome?wsdl
会出现以下效果
这基本上说明配置webservice 成功了
第六步最后在项目中写一个小测试类
public class HelloWebServiceClient {
public static void main(String[] args) {
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setAddress("http://localhost:9000/ws/welcome");
factory.setServiceClass(HelloWebService.class);
//客户端添加cfx日志拦截器
factory.getInInterceptors().add(new LoggingInInterceptor());
factory.getOutInterceptors().add(new LoggingOutInterceptor());
HelloWebService welcome = (HelloWebService) factory.create();
//system.out.println(welcome.welcomemessage("this if first cfx ws ."));
User user = new User();
user.setUserName("彭**");
user.setSex("男");
user.setAge(22);
System.out.println(welcome.sayHiToUser(user));
}
}
以上几步就完成了webService的服务端了,至于客户端可以通过wsdl2java 命令生成
第一步导入webservice所依赖的jar包 可以http://download.csdn.net/detail/pengyong_520/9544595 去下载
第二步在项目中新增一个interface接口
@WebService
public interface HelloWebService {
String sayHi(@WebParam(name="text",targetNamespace = "http://com.py.server/", mode = WebParam.Mode.IN)String text);
String sayHiToUser(User user);
String[] SayHiToUserList(List<User> userList);
}
注意:@WebService注明是WebService接口
接口中的方法的参数一定要以这种方式,否则客户端调用的时候CXF服务端会接收不到参数的值,name:参数名称,可不写(建议写上),targetNamespace:命名空间,一定要填写上,默认是包名反过来的顺序,mode:参数类型,IN表示输入。
第三步创建一个类去实现HelloWebService 接口
@WebService(endpointInterface="com.py.server.HelloWebService",serviceName="HelloWebService")
public class HelloWebServiceImpl implements HelloWebService {
public String sayHi(@WebParam(name = "text",targetNamespace = "http://com.py.impl/", mode = WebParam.Mode.IN) String text) {
System.out.println("我是服务端----sayHi");
return "Hello,"+text;
}
public String sayHiToUser(User user) {
return "Hello,"+user.getUserName()+"你的年龄是:"+user.getAge();
}
public String[] SayHiToUserList(List<User> userList) {
// TODO Auto-generated method stub
return null;
}
}
第四步在定义一个POJO对象
public class User implements Serializable{
private String userName;
private String sex;
private Integer age;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public User(String userName, String sex, Integer age) {
this.userName = userName;
this.sex = sex;
this.age = age;
}
public User() {
}
}
第五步写一个服务类去启动webService
public class WebServiceApp {
public static void main(String[] args) {
// System.out.println("web service start");
// HelloWebServiceImpl implementor = new HelloWebServiceImpl();
// String address = "http://localhost:8080/webServiceOne";
// //Endpoint.publish(address, implementor);
// System.out.println("web service started");
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
factory.setServiceClass(HelloWebServiceImpl.class);
//address可以自定义 这个作为你要给客户端连接的地址
factory.setAddress("http://localhost:9000/ws/welcome");
//添加cfx自定义的日志拦截器
factory.getInInterceptors().add(new LoggingInInterceptor());
factory.getOutInterceptors().add(new LoggingInInterceptor());
Server server = factory.create();
server.start();
}
}
启动成功在浏览器输入http://localhost:9000/ws/welcome?wsdl
会出现以下效果
这基本上说明配置webservice 成功了
第六步最后在项目中写一个小测试类
public class HelloWebServiceClient {
public static void main(String[] args) {
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setAddress("http://localhost:9000/ws/welcome");
factory.setServiceClass(HelloWebService.class);
//客户端添加cfx日志拦截器
factory.getInInterceptors().add(new LoggingInInterceptor());
factory.getOutInterceptors().add(new LoggingOutInterceptor());
HelloWebService welcome = (HelloWebService) factory.create();
//system.out.println(welcome.welcomemessage("this if first cfx ws ."));
User user = new User();
user.setUserName("彭**");
user.setSex("男");
user.setAge(22);
System.out.println(welcome.sayHiToUser(user));
}
}
以上几步就完成了webService的服务端了,至于客户端可以通过wsdl2java 命令生成
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树