webservice示例(java)
来源:互联网 发布:淘宝怎样找货源 编辑:程序博客网 时间:2024/06/17 19:15
最近要做一个微信消息发送功能,考虑到微信平台(A)项目的安全性,禁止非微信浏览器访问。打算在另外一个项目中建立该平台(B:该项目部署于公司内网中)实现该功能。注:A、B两个项目都是非webservice项目。考虑使用webservice来实现。以下是功能测试全过程记录:
首先在A项目中新建一个服务类KefuUtil.java,记得添加@WebService。代码清单如下:
/**
* 客服消息管理类
* @author luolj07
* @date 2015-08-24
*
*
*/
@WebService
public class KefuUtil {
/**
* 客服消息接口测试
* @param type
* @return
* @throws Exception
*/
public boolean gotoKefu(String type) throws Exception{
String appId = OpString.APP_ID;
String appSecret = OpString.APP_SECRET;
CommonBo bs = new CommonBo();
bs.setS1("xxxxx");
bs.setS5("xxx");
bs.setS4("news");
AccessTokenaccessToken = WeixinUtil.getAccessToken(appId, appSecret);
boolean result =false;
if(accessToken !=null){
result =KefuUtil.runKefu(accessToken.getToken(), KefuUtil.getMessages(bs));
//判断是否调用客服消息成功,若不成功,则重新获取access_token再次获取。
if(result ==false){
accessToken =WeixinUtil.getAccessToken(appId, appSecret);
result =KefuUtil.runKefu(accessToken.getToken(), KefuUtil.getMessages(bs));
}
}
return result;
}
}
监听服务类:KefuMessageListener.java
该服务来实现ServletContextListener接口,用于应用服务器监听。代码清单如下:
package com.gxtk.weixin.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.xml.ws.Endpoint;
import com.gxtk.weixin.utils.KefuUtil;
/**
* 启动webserver服务监听类,使之随tomcat启动而启动服务
* @author luolj07
*
*/
public class KefuMessageListener implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generatedmethod stub
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
Endpoint.publish("http://10.33.2.110:8080/weixinYxfz/KefuUtil",new KefuUtil());
System.out.println("=============启动webservice服务================Publish Success");
}
}
然后项目web.xml中配置监听,加入如下配置:
<listener>
<listener-class>com.gxtk.weixin.listener.KefuMessageListener</listener-class>
</listener>
然后启动项目,可看到启动信息如下:
说明我们的监听器已经启动,服务正常启动。
A项目webservice服务已经处理完毕。接下来看看B项目的实现过程。
首先新建一个test空的package,然后运行-cmd,输入以下命令:
命令格式:wsimport -s src的路径 -p 完整包名 -keep webservice的发布地址 然后回车就OK了,
输入命令:wsimport -sE:\\workspace\\zzylr\\src -p com.taikang.test -keep http://10.33.2.110:8080/weixinYxfz/KefuUtil 按下回车,查看结果:
报错了,对是错了。看来需要指定wsdl
再输入:wsimport -sE:\\workspace\\zzylr\\src -p com.taikang.test -keep http://10.33.2.110:8080/weixinYxfz/KefuUtil?wsdl 按下回车,结果如下:
成功了。刷新下B项目com.taikang.test,看看是否已经生产对应的webservice文件:
有了。
最后我们新建一个测试类,test.java做测试,代码清单如下:
packagecom.taikang.test;
public class Test {
public static void main(String[] args) {
KefuUtil util = new KefuUtilService().getKefuUtilPort();
try{
util.gotoKefu("测试接口发送消息");
System.out.println("发送成功");
} catch(Exception_Exception e) {
System.out.println("发送失败");
e.printStackTrace();
}
}
}
结果测试如下:
B项目输出信息:
A项目输出信息:
成功调用信息发送。
再打开微信看看:
成功接收消息。 搞定。。。。
参考:http://blog.csdn.net/lovingshu/article/details/8004840
- webservice示例(java)
- java调用webservice示例(转)
- Java Webservice简单示例(非框架)
- java 调用axis2 webservice示例
- java 调用 .net webservice 示例
- java调用php的webservice示例
- java使用axis调用WebService简单示例
- 超级简单的java WebService示例
- java 调用 wsdl形式的webservice 示例
- java 调用webservice (asmx) 客户端开发示例
- java后台调用webservice接口示例
- java 调用 wsdl形式的webservice 示例
- java 调用 wsdl形式的webservice 示例
- webservice示例
- webservice 示例
- webService示例
- JAVA开发7--java发布webservice简单示例
- Axis2发布webservice示例(使用eclipse)
- C# 抽象工厂
- centos内核升级
- Mysql 选择优化的数据类型
- Android 的 Handler 总结
- 适配器(Adapter)——类对象结构型模式
- webservice示例(java)
- 彻底根除“无法安装64位版本的Office,因为在您的PC上找到了以下32位程序:”的问题
- Ugly Number
- STL学习----入门(1)[forward_list]
- 文章标题
- JAVA wait(), notify(),sleep详解
- UVALIVE 3713 Astronauts(2-SAT)
- 同一字符串,MD5加密后出现不同的结果
- Android中Timer使用方法