zoukankan      html  css  js  c++  java
  • axis2框架实现webservice

    这里我要记录的是不生成.arr或者.jar文件,结合真实项目实现的webservice;

    其中项目作为服务的提供方,创建一个web项目,做单元测试。

    一、服务端的创建

      1、导入axis2相应的jar包

      2、创建services.xml文件

         

    <serviceGroup>
        <service name="ModlCustService">
            
            <!-- 通过ServiceObjectSupplier参数指SpringServletContextObjectSupplie类来获得Spring的ApplicationContext对象 -->
            <parameter name="ServiceObjectSupplier">
     org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier</parameter>
            
            <!-- SpringBeanName固定的不能改     modlCustServiceTarget是spring中注册的实现类的id-->
            <parameter name="SpringBeanName">modlCustServiceTarget</parameter>
        </service>
        
        <!-- 
            配置消息接收器,Axis2会自动选择
            方法有返回值,因此,需要使用可处理输入输出的RPCMessageReceiver类,
            而方法没有返回值,因此,需要使用只能处理输入的RPCInOnlyMessageReceiver类。
         -->
        <messageReceivers>  
            <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"  
                class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />  
            <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"  
                class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />  
        </messageReceivers>  
    </serviceGroup>

      3、在web.xml中进行配置

          

      4、在applicationContext.xml文件中进行配置

    二、客户端的创建

       1、这里我使用的是wsdl2java.bat生成的代码,配置环境变量(使用黑窗口在任何位置都能找到axis2下ben目录中的这个程序):

        新增  AXIS2_HOME    F:javaaxis2-1.7.5

        在Path中添加      %AXIS2_HOME%in;

    三、心路历程

      因为之前没有接触过axis2框架,所以在开发的过程中,都是边在网上找资料,边做demo。进入过很多误区。时间还耽误了不少。比如:

      

      在客户端做单元测试的时候,发现客户端报错,当时一直不知道哪里出了问题

      org.apache.axis2.axisfault: exception occurred while trying to invoke service method createvm

      后来才发现是没有和spring整合,导致服务端报空指针问题(dao没有注入)。

  • 相关阅读:
    C# 串口通信总结
    配置文件的读写
    配置文件入门
    锁机制与原子操作 <第四篇>
    线程池 异步I/O线程 <第三篇>
    线程池之ThreadPool类与辅助线程
    这一篇sigmoid和softmax的比较,讲的不错
    今天看到的关于深度学习的一篇文章,可以好好学习下
    git各种命令 & git merge和git rebase的区别
    ORA-19815,ORA-19809 :limit exceeded for recovery files
  • 原文地址:https://www.cnblogs.com/my0901/p/6895117.html
Copyright © 2011-2022 走看看