axis2发布web项目开发webservice和接口调用

  网上查了很久的axis2,但是和本人实际接口的使用情况严重不符,我通过网上搜寻终于完成axis2与已有项目完美集成,并生成客户端调用代码直接使用。现将经验总结如下,自己存的容易丢失,所以总结在网上,也方便大家参考,以后自己在用到时不至于到处找。

       1、将axis2.war解压开,将conf,lib,modules,service四个文件夹复制到已有项目的WEB-INF下。

       2、开发接口类

public String addRemindTOSendMsg(String  nid,String mobile,String validitytime,String content){
  String rMsg="fail";
  System.out.println("调用进来了:nid="+nid+" \n mobile="+mobile
    +" \n validitytime="+validitytime+" \n content="+content);
  HInterfaceService hf=new HInterfaceService();//接口处理类
  rMsg=hf.addRemindTOSendMsg(nid,mobile,validitytime,content);//调用接口处理插入文件
  return rMsg;
 }

       3、在services文件下新建一个文件夹(任意取名),再新建META-INF文件夹,最后再新增services.xml,接口信息就写在这里面。

            具体路径:WEB-INF/services/myservice/META-INF/services.xml。

另外,WEB-INF/services/myservice/META-INF/此目录下还必须在建立一个文件:ServiceData.xml。。否则程序运行时有可能出错。路径为:

WEB-INF/services/myservice/META-INF/ServiceData.xml。

ServiceData.xml文件内容为:

<?xmlversion="1.0"encoding="UTF-8"?> 

 <!--此文件必须存在,否则执行异常 -->

<ServiceData> 

</ServiceData>

       4、编写services.xml信息如下(本人创建了多个接口,多个接口也就是开发是接口类多个方法而已):

<?xml version="1.0" encoding="UTF-8"?> 
<service name="HttxService"> 
    <description>  
         提醒接口调用服务(多种方式循环提醒)
    </description> 
    <parameter name="ServiceClass"> 
       com.besys.httx.ws.HcallInterface  --此处是接口类路径
    </parameter> 
     <operation name="addRemind">  --接口里面方法,
        <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> 
    </operation>
    <operation name="addRemindTOSendMsg"> 
        <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> 
    </operation>
    <operation name="closeRemind"> 
        <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> 
    </operation>
</service>

      5、将如下代码添加到web.xml中

<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>  

      6.发布项目,然后在地址栏上输入http://localhost:8080/MyAxis/services/HttxService?wsdl,就能看到发布的项目了哦!!

      7、编写客户端程序

 Axis2提供了一个wsdl2java.bat命令可以根据WSDL文件自动产生调用WebService的代码。
  wsdl2java.bat命令可以在<Axis2安装目录>/bin目录中找到。
  在使用wsdl2java.bat命令之前需要设置AXIS2_HOME环境变量,该变量值是<Axis2安装目录>。如果不设置,则将cmd命令窗口路径运行到axis2/bin目录下在执行命令语句。
  在Windows控制台输出如下的命令行来生成调用WebService的代码:
  %AXIS2_HOME%\bin\wsdl2java -uri http://localhost:8080/MyAxis/services/HttxService?wsdl
         -p client -s -o stub
  其中-url参数指定了wsdl文件的路径,可以是本地路径,也可以是网络路径。
  -p参数指定了生成的Java类的包名,-o参数指定了生成的一系列文件保存的根目录。
  在执行完上面的命令后,就会发现在当前目录下多了个stub目录,
  在stub/src/client目录可以找到一个  *Stub.java文件,

这个文件可以放到项目里面使用了;

以上主要是网友提供的

本人测试调用代码:

本人接口测试的执行操作,先切换到axis2/bin目录下然后输入命令执行语句

wsdl2java -uri http://localhost:9090/besys_httx/services/HttxService?wsdl -p client -s -o stub

执行后文件生成:

生成客户端文件后,将生成的文件复制到自己项目下,使用代码直接调用与返回

HttxServiceStub stub=new HttxServiceStub();//生成的客户端调用文件
   //发短信
   AddRemindTOSendMsg uf=new AddRemindTOSendMsg();//需调用的接口方法,直接进行实例化
   //方法参数 为方法中参数传值
   uf.setNid("test005");
   uf.setMobile("18088888888");
   uf.setValiditytime("5");
   uf.setContent("985255fsdfsf ");
   //调用接口
   AddRemindTOSendMsgResponse res=stub.addRemindTOSendMsg(uf);
   //获取返回值,本人的接口返回的是一个字符串,如果返回一个对象,则可以用Response获取对象返回结果属性
   String result=res.get_return();
   System.out.println("------调用结果:"+result);

特别鸣谢:

网友:wangronaldo的分享:http://wangronaldo.iteye.com/blog/1456441

参考的还有其他的人的分享资料,这里不再贴出。

整理的比较乱,能看懂关键点就行了。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要通过Axis2调用Web服务接口,可以按照以下步骤进行操作: 1. 首先,确保已经安装了Java Development Kit(JDK)和Apache Axis2。可以从Apache官网下载并安装Axis2。 2. 创建一个Java项目,并将Axis2库添加到项目的类路径中。 3. 使用Axis2提供的工具生成客户端代码。可以使用wsdl2java工具来生成与Web服务接口对应的客户端代码。打开命令行终端,进入到Axis2的bin目录下,执行以下命令: ``` wsdl2java -uri <wsdl_url> -p <package_name> -d <output_directory> ``` 其中,`<wsdl_url>`是Web服务接口的WSDL文件的URL地址,`<package_name>`是指定生成的客户端代码所在的包名,`<output_directory>`是指定生成的客户端代码输出的目录。 4. 在Java项目中编写代码以调用Web服务接口。根据生成的客户端代码,可以创建相应的Web服务代理类,并使用该代理类来调用Web服务接口的方法。 ``` // 创建Web服务代理类 MyWebServiceStub stub = new MyWebServiceStub(); // 调用Web服务接口的方法 SomeResponse response = stub.someMethod(someRequest); ``` 在代码中,`MyWebServiceStub`是根据生成的客户端代码命名规则自动生成的类,`someMethod`是Web服务接口中定义的方法名,`someRequest`是调用方法所需的请求参数,`SomeResponse`是方法的返回结果类型。 5. 编译和运行Java项目,验证是否成功调用Web服务接口。 这是一个基本的使用Axis2调用Web服务接口的过程。根据具体情况,可能需要额外的配置和处理,例如设置Web服务的地址、认证等。请根据实际需求进行相应的调整和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值