如apache-cxf-2.7.10.zip
server服务器端:
创建的接口:
package com.cpic.wechat.webservice.client.robot;
import javax.jws.WebService;
/**
* 接口需要注解
*/
@WebService
public interface IWeixin01 {
/**
* 获取用户信息
* @param accessToken 接口访问凭证
* @param opendId 用户标识
* @return
*/
public String getUserInfo(String accessToken,String opendId);
}
创建实现类:
package com.cpic.wechat.webservice.client.robot.impl;
import javax.jws.WebService;
import com.cpic.wechat.webservice.client.robot.IWeixin01;
/**
* endpointInterface表示webservice接口名,因为一个类可以继承多个接口,你必须指明哪个是webservice接口
*
* serviceName:表示当前webservice的别名
*
* portName:表示当前webservice的端口名
*
* 这些属性定义好之后,在wsdl中是能看到的,如果不定义,cxf会配置默认的别名和端口名
*/
@WebService(endpointInterface = "com.cpic.wechat.webservice.client.robot.IWeixin01", serviceName = "IWeixin01Service", portName = "IWeixin01ServicePort")
public class Weixin01Impl implements IWeixin01 {
/**
* 获取用户信息
*
* @param accessToken
* 接口访问凭证
* @param opendId
* 用户标识
* @return
*/
public String getUserInfo(String accessToken, String opendId) {
//获取客户端发送过来的accessToken,opendId,
//在该方法下进行业务处理,
//并返回处理结果给客户端
StringBuilder sb = new StringBuilder();
sb.append("{");
sb.append("'subscribe': 1,");
sb.append("'openid': 'o7Lp5t6n59DeX3U0C7Kric9qEx-Q',");
sb.append("'nickname': '方倍',");
sb.append("'sex': 1,");
sb.append("'language': 'zh_CN',");
sb.append("'city': '深圳',");
sb.append(" 'province': '广东',");
sb.append(" 'country': '中国',");
sb.append(" 'subscribe_time': 1389684286");
sb.append("}");
return sb.toString();
}
}
配置web.xml:
CxfDemo
contextConfigLocation
classpath:webservice.xml
org.springframework.web.context.ContextLoaderListener
org.springframework.web.util.IntrospectorCleanupListener
CXFServlet
org.apache.cxf.transport.servlet.CXFServlet
1
CXFServlet
/webservice/*
客户端client:
通过apache CXF wsdl2java工具生成代码:
下载apache cxf的包,如apache-cxf-2.7.10.zip
解压在某一个盘下并进行环境变量配置:
1、CXF_HOME=D:\apache-cxf-2.7.10
2、在path后面加上 %CXF_HOME%/bin;
在cmd命令中输入wsdl2java,如果有提示usage,就表明配置成功
3,使用apache CXF wsdl2java工具:
创建java项目test
把代码生成在src下:
在cmd命令中输入:wsdl2java -d D:\\src -client http://api.xxx.cn/xxxAPI/service/auditResBatchQueryService?wsdl
(D:\\src 是客户端程序代码所在的目录,http://api.xxx.cn/xxxAPI/service/auditResBatchQueryService?wsdl 是 定义webservice的地址,-client是生成客户端代码,-server 生成服务器启动web service的代码)
cmd下运行:wsdl2java -d E:\myeclipseworkspace1.0\test\src -client http://localhost:8080/webservice/cpicgxwx?wsdl
刷新项目,结果如下:
运行IWeixin01_IWeixin01ServicePort_Client.java
输出结果:
Invoking getUserInfo... getUserInfo.result={'subscribe': 1,'openid': 'o7Lp5t6n59DeX3U0C7Kric9qEx-Q','nickname': '方倍','sex': 1,'language': 'zh_CN','city': '深圳', 'province': '广东', 'country': '中国', 'subscribe_time': 1389684286} {'subscribe': 1,'openid': 'o7Lp5t6n59DeX3U0C7Kric9qEx-Q','nickname': '方倍','sex': 1,'language': 'zh_CN','city': '深圳', 'province': '广东', 'country': '中国', 'subscribe_time': 1389684286} |