zoukankan      html  css  js  c++  java
  • axis2服务器搭建

    一. axis2服务器搭建

    简单起见, axis2r搭建采用较为简单的一种方式, 即将服务类和services.xml打成.aar包发布.

    1. 下载部署axis2

    http://axis.apache.org/axis2/java/core/

    这里选择下载的1.7.0版本, axis2-1.7.0-war.zip

    2. 将zip文件中的axis2.war包解压到tomcat的webapps目录中, 启动tomcat,

    完成axis2的安装部署, 如下图:

    3. 访问 http://localhost/axis2 显示如下页面, 表示axis2部署成功

    4. 访问 http://localhost/axis2/services/listServices , 可查看此axis2所发布的webservice服务, 如下图:

    其中, Version为axis2默认发布的服务, getVersion是此服务的方法

    二. 编写发布webserivce接口

    1. 新建java项目myAxis2

    2. 创建服务类HelloShooter.java

    复制代码
     1 package com.shooter.webservice;
     2 
     3 public class HelloShooter {
     4 
     5     public void getShooterId(String shooterId) {
     6         System.out.println("狙击手编号: " + shooterId);
     7     }
     8     
     9     public String shoot(int num) {
    10         return "本次出击共狙击 " + num + " 名敌军";
    11     }
    12     
    13     public String undershoot() {
    14         return "脱靶, 很遗憾!";
    15     }
    16     
    17 }
    复制代码

    3. 新建META-INF目录, 并创建services.xml文件

    services.xml源码如下:

    复制代码
     1 <serviceGroup>
     2     <!-- 第一个webservice服务 -->
     3     <service name="HelloShooter" targetNamespace="http://sharp-shooter">
     4         <!-- 命名空间 -->
     5         <schema schemaNamespace="http://sharp-shooter" />
     6         <!-- 发布的服务类全路径 -->
     7         <parameter name="ServiceClass">com.shooter.webservice.HelloShooter
     8         </parameter>
     9         <!-- 对每个方法配置处理器 -->
    10         <operation name="getShooterId">
    11             <messageReceiver class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
    12         </operation>
    13         <operation name="shoot">
    14             <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    15         </operation>
    16         <operation name="undershoot">
    17             <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    18         </operation>
    19     </service>
    20 </serviceGroup>
    复制代码

    另一种services.xml编写方式, 配置全局处理器, 但此种方法我没有成功过, 如哪位测试成功了, 交流一下

    复制代码
     1 <serviceGroup>
     2     <!-- 第一个webservice服务 -->
     3     <service name="HelloShooter" targetNamespace="http://sharp-shooter.com">
     4         <!-- 命名空间 -->
     5         <schema schemaNamespace="http://sharp-shooter.com" />
     6         <!-- 发布的服务类全路径 -->
     7         <parameter name="ServiceClass">com.shooter.webservice.HelloShooter</parameter>
     8         <messageReceivers>
     9             <!--有返回值的处理器-->
    10             <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" 
    11                                 class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    12             <!--无返回值的处理器-->
    13             <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" 
    14                                 class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
    15         </messageReceivers>
    16     </service>
    17 </serviceGroup>
    复制代码

    其中,

    1) service元素的name属性为服务名称, 如果没有设置此属性, 那么服务名称为发布包名, 如发布包为shooter.aar, 则服务名为shooter

    2) schema配置的为命名空间, 并在service元素中配置同样的命名空间

    3) parameter name="ServicesClass"配置的为服务类的全路径

    4) 处理器, 第一种方式为全局处理器, 第二各方式为为某个方法配置所需要的处理器

    4. 创建.aar包

    1) 使用myeclipse的导出功能, 导出编写的服务类和services.xml文件为jar包, 如图:

    可去除不必要的文件.

    2) 修改包扩展名为.aar

    3) 将.aar包拷贝到...apache-tomcat-6.0.35-80webappsaxis2WEB-INFservices目录中(自动部署), 完成服务端发布

    4) 访问 http://localhost/axis2/services/listServices , 服务页面显示HelloShooter服务, 则发布成功

  • 相关阅读:
    Leetcode:169. 多数元素
    关系数据库
    数据库系统概述——简单总结
    Leetcode:1305. 两棵二叉搜索树中的所有元素
    Leetcode春季打卡第四天:994. 腐烂的橘子
    临界区和临界资源的关系
    线程2.线程的应用场景
    线程
    linux下的进程控制
    Go中的错误处理
  • 原文地址:https://www.cnblogs.com/firstdream/p/6394084.html
Copyright © 2011-2022 走看看