一、Axis2的下载和安装

1.可从http://ws.apache.org/axis2/ 下载Axis2的最新版本:
      可以下载如下三个zip包:
      axis2-eclipse-service-plugin-1.7.1.zip

axis2-eclipse-codegen-plugin-1.7.1.zip

axis2-1.7.1-war.zip
      前两个是eclipse的插件包,解压放到eclipse安装目录的dropins即可

重启eclipse可以看到

axis2-1.7.1-war.zip文件用于将WebService发布到Web容器中。解压下后将axis2.war放至tomcat安装目录下的webapps文件夹下,然后启动tomcat后,在webapps目录下会生成axis2文件夹。  访问http://localhost:8080/axis2/能看到以下页面表示axis2运行成功。

2  在Eclipse下新建Dtnamic Web Project,工程名:WebServiceServer(服务端)。新建包cn.test.webservice(包名小写,以免生成的java文件报错,后面的axis2自动生成的java文件包名都是小写,大写的包名生成java文件的包名都会变小写),在cn.test.webservice下新建IWebService

2:使用Axis2 代码生成器,完成WebService程序开发 (服务器端)根据接口生成 wsdl文件 (WebService 核心描述文件 )

选择项目,new other,选择axis2 的代码生成器,如图:

先用service接口生成wsdl文件,所以选择“从java代码生成wsdl文件”,点击【下一步】

填写类的名称,点击AddFolder  选择工作空间,项目下的bulid—>classes的目录,点击【测试类路径】显示成功!点击【下一步】

选择默认配置即可:

选择wsdl的输出路径,可以先放置到桌面

3:基于wsdl生成服务器代码。

选择项目,new other,选择axis2 的代码生成器,如图:

先用service接口生成wsdl文件,所以选择“从wsdl文件生成java代码”,点击【下一步】

选择wsdl文件的位置:如图:

选择代码选项为custom(自定义),并选择生成服务端代码和生成一个默认的services.xml文件,点击【下一步】。

选择输出路径,为项目的根路径,点击【结束】,刷新项目,即生成服务端代码。

服务端代码如图:

导入响应的jar包

把tomcat安装目录下的webapps/axis2/WEB-INF下的modules、service和conf文件拷至WebService下的WEB-INF目录下。同时把lib下jar包也拷到项目的lib包下(测试方便全部拷贝,实际开发有jar包冲突)。

拷贝webapps/axis2/WEB-INF/web.xml的servlet内容,放置到项目WebService的web.xml下 web.xml去掉出错的部分

[html] view plain copy
  1. <servlet>
  2. <servlet-name>AxisServlet</servlet-name>
  3. <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
  4. <!--<init-param>-->
  5. <!--<param-name>axis2.xml.path</param-name>-->
  6. <!--<param-value>/WEB-INF/conf/axis2.xml</param-value>-->
  7. <!--<param-name>axis2.xml.url</param-name>-->
  8. <!--<param-value>http://localhost/myrepo/axis2.xml</param-value>-->
  9. <!--<param-name>axis2.repository.path</param-name>-->
  10. <!--<param-value>/WEB-INF</param-value>-->
  11. <!--<param-name>axis2.repository.url</param-name>-->
  12. <!--<param-value>http://localhost/myrepo</param-
  13. <!--</init-param>-->
  14. <load-on-startup>1</load-on-startup>
  15. </servlet>
  16. <servlet>
  17. <servlet-name>AxisAdminServlet</servlet-name>
  18. <servlet-class>
  19. org.apache.axis2.webapp.AxisAdminServlet</servlet-class>
  20. </servlet>
  21. <!-- servlet>
  22. <servlet-name>SOAPMonitorService</servlet-name>
  23. <display-name>SOAPMonitorService</display-name>
  24. <servlet-class>org.apache.axis2.soapmonitor.servlet.SOAPMonitorService</servlet-class>
  25. <init-param>
  26. <param-name>SOAPMonitorPort</param-name>
  27. <param-value>5001</param-value>
  28. </init-param>
  29. <init-param>
  30. <param-name>SOAPMonitorHostName</param-name>
  31. <param-value>localhost</param-value>
  32. </init-param>
  33. <load-on-startup>1</load-on-startup>
  34. </servlet -->
  35. <servlet-mapping>
  36. <servlet-name>AxisServlet</servlet-name>
  37. <url-pattern>/servlet/AxisServlet</url-pattern>
  38. </servlet-mapping>
  39. <servlet-mapping>
  40. <servlet-name>AxisServlet</servlet-name>
  41. <url-pattern>*.jws</url-pattern>
  42. </servlet-mapping>
  43. <servlet-mapping>
  44. <servlet-name>AxisServlet</servlet-name>
  45. <url-pattern>/services/*</url-pattern>
  46. </servlet-mapping>
  47. <servlet-mapping>
  48. <servlet-name>AxisAdminServlet</servlet-name>
  49. <url-pattern>/axis2-admin/*</url-pattern>
  50. </servlet-mapping>

将tomcat生成的axis2文件夹中的axis2-web文件放置到项目的WebContent的文件夹下。

4:服务端代码分析:

(1)ExtensionMapper:将实体类数据映射为XML文件

(2)GetScoreById:接口方法getScoreById的参数对象

(3)  GetScoreByIdResponse:接口方法getScoreById的返回值对象

(4)IWebServiceMessageReceiverInOut 这个类,负责远程数据发送和接收

(5)IWebServiceSkeleton:服务器接口实现类,负责实现IWebService的接口IWebServiceSkeleton类,所有可以在该类上定义发布的方法,代码如下

5:WEB-INF/services下新建 test(可以是任何文件夹都可以)/META-INF路径,将生成的resources下的2个文件拷贝到  test/META-INF的文件夹下。例如:

5:启动tomcat后访问:

http://localhost:8080/WebService/services/IWebService.wsdl能看到服务信息了。  到此Axis2的WebService服务已成功发布。

其中IWebService是IWebService.wsdl中定义的<service name="IWebService">service的名称

注意:看懂webservice的使用说明书,记住要从下向上看。


Axis2客户端调用:

下面看看利用axis2客户端调用实例

第一步:客户端程序需要的jar包(为了测试方便全部拷贝axis2 lib下jar包也拷到项目的lib包下)

第二步:生成客户端代码

选择axis2的代码生成器,点击【下一步】

选择从wsdl文件生成java代码

选择桌面的services.wsdl文件

选择默认default,即生成客户端代码

选择客户端的程序目录,点击【完成】

选择项目,刷新,会生成客户端代码

jar包

客户端没有Skeleton类 (业务接口实现) ,多了 IWebSystemDDLServiceStub 客户端测试类

客户端程序,使用 IWebServiceStub.java来编写

在客户端的测试程序中使用:代码如下

[html] view plain copy
  1. </pre><pre name="code" class="html">package Test;
  2. import java.rmi.RemoteException;
  3. import cn.test.domain.xsd.Score;
  4. import cn.test.webservice.GetScoreById;
  5. import cn.test.webservice.GetScoreByIdResponse;
  6. import cn.test.webservice.IWebServiceStub;
  7. public class Test {
  8. public static void main(String[] args) throws RemoteException {
  9. /***调用网络服务axis调用webservice**/
  10. IWebServiceStub iWebServiceStub = new IWebServiceStub("http://192.168.1.104:8080/WebService/services/IWebService");
  11. //传递参数
  12. GetScoreById getScoreById = new GetScoreById();
  13. getScoreById.setArgs0(1);
  14. 传递参数返回结果
  15. GetScoreByIdResponse getScoreByIdResponse = iWebServiceStub.getScoreById(getScoreById);
  16. Score[] get_return = getScoreByIdResponse.get_return();
  17. for (int i = 0; i < get_return.length; i++) {
  18. System.out.println("id:" +get_return[i].getId()+" score:"+get_return[i].getScore());
  19. }
  20. }
  21. }

代码下载: http://download.csdn.net/detail/u014695188/9460217

用AXIS2发布WebService的方法 使用eclipse插件生成服务端和客户端相关推荐

  1. [图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端

    [图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端 一般开发Web Service,是选写服务端,再根据生成的WSDL文件生成客户端.看过一本SOA的书中 ...

  2. [Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端(续)

    前言 本篇是承接上一篇: [Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端 在上一篇粗略地介绍了如何使用Top-Down的方式创建 ...

  3. Spring和CXF整合发布WebService(服务端、客户端)

    参考Spring和CXF整合发布WebService(服务端.客户端) 转载于:https://www.cnblogs.com/timspace/p/11113576.html

  4. WebService服务端与客户端开发

    最近客户提出了将我们做的系统接入到他们系统之中,方便他们进行集中管理这个需求,其中主要就是运用了WebService技术来进行系统之间的接入.在此记录一下整个WebService是如何嵌入我们系统的以 ...

  5. SpringBoot——实现WebService接口服务端以及客户端开发

    文章目录 一.服务端代码开发 1.pom依赖 2.接口类 3.接口实现类 4.webservice配置文件 2.客户端开发 (1)pom依赖 (2)封装客户端方法clientUtil (3)调用接口类 ...

  6. [Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端

    开始本篇之前, 先说说 Buttom-up(从下到上)和Top-down(从上到下)的概念 这是开发WebService的两种方式. bottom-up 方式: 先创建Java Bean或EJB, 然 ...

  7. SpringBoot2 整合 AXIS2 服务端和客户端

    文章目录 一.AXIS2服务端 1. 版本选型 2.导入依赖 3. services.xml 4.Axis2配置类 5.服务接口 6.服务接口实现类 7. FileCopyUtils工具类 8. 测试 ...

  8. 简:webservice服务端及客户端开发

    一.服务端开发 1️⃣接口 public interface WsServer {String sayHello(String name); } 2️⃣实现类 import javax.jws.Web ...

  9. 用简单的方法构建一个高可用服务端

    2019独角兽企业重金招聘Python工程师标准>>> 一. 什么是高可用性 服务端,顾名思义就是为用户提供服务的. 停工时间,就是不能向用户提供服务的时间. 高可用,就是系统具有高 ...

  10. XFire创建WebService服务端和客户端

    WebService 接口在java中的开发 接口化自己的程序方法可以将自己的实现类进行一定程度的封装,只提供接口方法给其它程序,如果其它程序需要调用这个接口,它不再需要关心具体的实现,数据的如何处理 ...

最新文章

  1. 访问其他应用程序的Activity
  2. HashTable, HashMap, LinkedHashMap, ConcurrentHashMap
  3. 关于CLSCompliant
  4. 阿里云下Linux服务器安装Redis
  5. Java语言中的注释有哪些
  6. 26.如何实现关机时清空页面文件:
  7. 创建一个SQL测试数据库 - 消费者数据库
  8. java spring orm jbpm_spring整合jbpm4
  9. 腾讯广告:广告场景下有哪些视觉算法应用?
  10. linux备份mysql怎样操作,Linux下自动备份MySQL数据库详细操作步骤(转载)
  11. SQL Server导出导入数据方法
  12. 面向对象编程三大特性------封装、继承、多态
  13. Android 11源码 修改系统App后进行编译
  14. Linux Kubuntu 良心输入法
  15. QTP自动化测试培训大纲
  16. 基于vue 2.x的移动端网页弹窗插件wc-messagebox(支持Alert,Confirm,Toast,Loading)
  17. YDLidar开发-在win10下使用C++/python开发全过程-SDK配置
  18. 数据库技术的变迁历史及发展趋势
  19. 算法设计与分析——散列表/哈希表(Hash Table):直接寻址表
  20. 博彩游戏(tyvj 1519)

热门文章

  1. LeetCode第13题 罗马数字转整数
  2. 【笔记】生成函数与大背包问题
  3. 网络操作系统具有哪些特征?
  4. 46.贪心算法练习:  区间合并
  5. 页面优化必须知道的技能:meta标签中的http-equiv属性使用介绍
  6. Java神鬼莫测之MyBatis实现分页全过程(三)
  7. jQuery实现简单的百分比进度条
  8. sql 筛选唯一值_多列数据获取唯一值?你再肉眼筛选的时候,我已经下班了
  9. mysql 冷备搭建_从MySQL冷备说起_MySQL
  10. 涉密文件检查工具_保密文件销毁咨询