Axis2创建web service(一) - eclipse安装Axis2插件
参考:转自:https://blog.csdn.net/wangchangpen62/article/details/45171001
Axis2与CXF是现在很主流的WebService开发框架(java6也已经支持了),项目上还都是基本上用前两种做开发,今天记录一下我安装Axis2插件在eclipse中的安装和写一个简单的测试代码。
一、环境
1、eclipse:64位 Eclipse Java EE IDE for Web Developers. Version: 1.3.1.20100916-1202 Build id: 20100917-0705
2、jdk:1.6 64位
3、Axis2的版本是1.6.2
4、eclipse的Axis2插件
Service Archive Wizard - Eclipse Plug-in(用来将服务代码打包成后缀名为.aar文件的插件): axis2-eclipse-service-plugin-1.6.2.zip
Code Generator Wizard - Eclipse Plug-in(用来将服务代码生成wsdl文件以及解析将wsdl文件生成客户端代码的插件):axis2-eclipse-codegen-plugin-1.6.2.zip
二、
先关闭eclipse,解压axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip,把得到的两个jar包放入eclipse目录下的\plugins\中,重启eclipse。放置后,打开Eclipse,打开File—New—Other,若能看到如图,说明插件配置成功
若是高版本的eclipse或myeclipse的方法(没有测试过):进入eclipse的文件中将上面下载的eclipse插件解压到dropins文件目录下(解压的时候会生成plugins文件夹,我是把里面生成的jar直接拷出来放在dropins文件夹里面),以我的为例:F:\MyEclipse-8.6\dropins。然后重启eclipse,点击File-New-Other有如下图显示,则表示安装插件成功!若不行,试试在dropins目录下添加axis2.link文件,内容是
path=myeclipse的安装目录\\dropins(例如:我的文件内容为:path=E:\\MyEclipse-8.6\\dropins);
插件到此安装完成!
三、生成aar文件:
写一个简单的服务器代码:注意里面的方法参数不能传jsonObject,不然用插件打包时看不到下一步下一步的内容或者没反应。
package com.tongwei.remoteproxy;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;import com.tongwei.remoteproxy.db.ConnectionManager;
import com.tongwei.remoteproxy.util.Log;/*** * 打aar包时需要注意:java内的方法参数最好用String 或String[],不能用jsonObect,不然打包向导无法正常打包**/
public class SyncDataService {public static String requestService(String param) {StringBuffer logStr = new StringBuffer();// 写入字符String curDate = Log.GetNowDate("yyyy-MM-dd HH:mm:ss");// 当前时间yyyy-MM-ddJSONArray jsonArray = JSONArray.fromObject(param);String result_str = "";int cnt_suss = 0;int cnt_fail = 0;try {Log.CreateLog(curDate + " 输入参数-----------------" + param + "\r\n");logStr.append("解析推送设备信息共【").append(jsonArray.size()).append("】条:\r\n");result_str = "解析推送设备信息共【" + jsonArray.size() + "】条";for (int i = 0; i < jsonArray.size(); i++) {// 可能多个JSONObject object = jsonArray.getJSONObject(i); String type = object.getString("operatortype"); String ws_id = object.getString("serialno");//System.out.println(type);String tempstr = "";String temp_result = saveCardRecord(object.toString());//保存数据,参数只能是string类型,不然打不了aar包}} catch (Exception e) {e.printStackTrace();return "1-" + e.getMessage();}//System.out.println("测试=" + logStr);return "0-" + result_str;}public static void main(String[] args){String str = "[{\"cardno\": \"ic卡号111\",\"username\": \"张三\",\"employeeno\": \"C01\",\"serialno\": \"1001\",\"operatorname\": \"控制器名称1\",\"doorname\": \"门禁点名称1\",\"opentime\": \"2018-01-11 04:52:48\",\"operatortype\":\"doorInout\",\"eventtype\":\"1\"}," + " {\"cardno\": \"ic卡号111\",\"username\": \"张三\",\"employeeno\": \"C01\",\"serialno\": \"1111\",\"costmoney\": \"6\",\"equipmentname\": \"设备名称1\",\"merchant\": \"商户1\",\"consumetime\": \"2018-01-11 12:52:48\",\"balance\":\"57\",\"operatortype\":\"consumeRecord\"}]";String result = requestService(str);System.out.println( result);}/*** 连数据库,保存数据* * @param param* @return* @throws SQLException*/public static String saveCardRecord(String param ) throws SQLException {//JSONObject objectConnection conn = null;try {conn = ConnectionManager.getConnection();// 打开数据库连接} catch (Exception e) {e.printStackTrace();return "1-" + e.getMessage();} finally {if (conn != null) {conn.close();}}return "0";}}
然后File-New-Other--Axis2 Wizards-Axis2 Service Archiver(通过插件生产可发布的aar文件)
选择class文件的目录,下一步
点击【完成】
到此步骤就能生成好名为:SyncDataService.aar的文件了,在桌面上用压缩软件打开这个aar文件可以看到,结构与平常的war的结构很是相似。
再将service.xml解压出来,可以看到如下代码:
<service name="SyncDataService" ><description>Please Type your service description here</description><messageReceivers><messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /><messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/></messageReceivers><parameter name="ServiceClass">com.tongwei.remoteproxy.SyncDataService</parameter>
</service>
如果有多个webservice要发布,且是同一个项目之内的话,可以通过修改此配置文件与上面的class文件夹来达到发布一个aar包多个webservice服务,有如下配置(来自参考):
<serviceGroup> <service name="ManifestService" > <description> ManifestService </description> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> </messageReceivers> <parameter name="ServiceClass">com.hwt.glmf.webservice.ManifestService</parameter> </service> <service name="ManifestServiceQG" > <description> QYTG ManifestService </description> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> </messageReceivers> <parameter name="ServiceClass">com.hwt.glmf.qytgservices.ManifestServiceQG</parameter> </service> <service name="CipService" > <description> CipService </description> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> </messageReceivers> <parameter name="ServiceClass">com.hwt.glmf.externalinterface.cip.CipService</parameter> </service>
</serviceGroup>
配置web.xml中Axis2的AxisServlet
<servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class> <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern>
</servlet-mapping>
我们这边就是发布上面写的一个简单的webservice接口,现在要说的是发布这个webservice接口 (有放在下载的Axis2的war包中一起发布的版本,此篇文章不做介绍,就是介绍在web项目中发布webservice接口),可以将此文件放在新建的web项目的WebRoot-->WEB-INF-->services目录下,在将再下载的Axis2 Binary Distribution(1.6.2)解压,生成的文件夹下面的lib目录中将所有的jar包拷入到lib中。启动项目的时候就会将次webservice发布出去。 在浏览器中输入如下地址(下面的是本机地址,如果是访问别的机子,将localhost:8080修改成对应的IP以及端口号即可):
http://localhost:8080/QYTG/services/MyService?wsdl
有如下显示的则是成功了:
到了此步骤就是Axis2的webservice接口发布成功了!因为Axis2有很多种生成客户端代码的方法,所以再开一篇介绍Axis2的客户端代码的生成
Axis2创建web service(一) - eclipse安装Axis2插件相关推荐
- axis2创建web service
学习: http://www.javaeye.com/topic/284387
- 使用Axis2调用Web Service
本文作为使用Axis2创建Web Service的后篇,主要介绍如何使用Axis2调用Web Service.有关准备工作详情请参考前篇的内容. 在Eclipse的Packge Explorer中右键 ...
- 基于Tomcat5.0和Axis2开发Web Service应用实例
本文将介绍如何使用Tomcat5.0和Apache Axis2开发.部署及测试一个简单的Web Service应用.<?xml:namespace prefix = o ns = "u ...
- 基于Tomcat5.0和Axis2开发Web Service代码详解
本文将详细介绍HelloWorld中使用的server和client端代码.阅读之前,你应该首先了解SOAP1.1协议.<?xml:namespace prefix = o ns = " ...
- 1、eclipse安装Axis2插件
eclipse安装Axis2插件 eclipse版本: neon axis2版本:1.7.9 插件下载地址: eclipse版本: neon 测试时还使用版本eclipse-jee-2019-03-R ...
- SAP创建Web Service以及用ABAP调用
如果运行 soamanager 打不开,网页显示 devaix .zhongpin.com ,打开 C :\WINDOWS\system32\drivers\etc, 用记事本打开 hosts 文件 ...
- Spring boot调用及创建Web Service接口
首先,使用idea创建一个spring boot项目,这里为演示方便只默认包含spring web. 然后从这个网站Apache CXF -- Download 下载apache-cxf ...
- Eclipse安装SVN插件的两种方式
登录 | 注册 收藏成功 确定 收藏失败,请重新收藏 确定 查看所有私信查看所有通知 暂没有新通知 想要绕过微信小程序开发中的坑吗?不妨来听这个,今晚8点,1小时帮你搞定! 23小时以前 CSDN日报 ...
- Eclipse 安装Gradle插件
http://www.cnblogs.com/simoncook/archive/2013/02/28/2937939.html 一.介绍 1. Gradle 是什么 Gradle 官方对其描述是:能 ...
- 关于svn的安装配置开启服务过程和 eclipse安装SVN插件的方法
eclipse安装SVN插件的方法链接:https://www.cnblogs.com/alamps/p/6155963.html svn的安装配置开启服务相关过程: 安装一直下一步cmd中:echo ...
最新文章
- python怎么读取列表-详解Python如何获取列表(List)的中位数
- oracle绑定变量赋值,Oracle教程之绑定变量
- 树莓派 使用读卡器修改WIFI连接配置
- lipo 制作通用版本 静态库
- 【鬼网络】之Linux网络设置
- java BIO NIO AIO 理论篇
- 一文搞清楚 Spark RDD到底是什么?
- jquery梳理之常用选择器
- Js捕获地址栏信息,根据地址栏信息来判断是否要显示页面中的信息
- tuxedo linux 安装
- springboot-aop
- Ubuntu下的Hadoop安装
- macOS Catalina 10.15.7 ISO/CDR 虚拟机镜像下载
- 激活Windows10,激活软件被报出,软件存在威胁或者恶意程序?
- 基于移动通信数据的城市可视分析研究
- hdu6832(2020hdu多校6t6)
- 苹果市值破万亿,iPhone 会涨价吗?
- DB2下将16进制转为十进制
- LightOJ - 1406 Assassin`s Creed【状压DP】
- 视频格式与编码压缩标准 mpeg4,H.264.H.265 有什么关系?
热门文章
- 图论(七)哥尼斯堡七桥问题
- ubuntu的初始密码
- Matlab计算质心
- 桌面虚拟化 VMware Horizon_view 7 安装及管理手册
- 【论文阅读】Whisper: Robust Speech Recognition via Large-Scale Weak Supervision
- 数据挖掘学习:站在巨人的肩膀上
- 【思想感悟】站在巨人的肩膀上
- php easyui filebox,easyui fileBox 获取文件名和添加下拉框
- CARLA 笔记(05)— Actors and blueprints(创建和修改 Blueprint、生成 Spawning、使用 Handling、销毁 Destruction)
- 解决因cocosStudio发布的csb文件过大导致的加载游戏界面卡的问题