在用axis2生成服务端文件和客户端文件,当客户端文件调用服务端文件时,都是通过wsdl文件生成的

配置文件进行相互的调用。

在一开始做开发测试的时候,通过soapUI进行调用接口的时候,可以调用成功,但这只是服务端调用,

并没有通过客户端进行调用。当服务端开发接收后,开发客户端,由客户端调用服务端文件时,一直没有调通,

后来经高人指点,原因在于生成的服务端文件--MessageReceiveInOut文件中,有一段代码需要修改,才能调通。

代码如下:

这是由wsdl文件直接生成服务端文件--MessageReceiveInOut的部分代码(生成的文件的前几行):

  public class VodServiceMessageReceiverInOut extends org.apache.axis2.receivers.AbstractInOutMessageReceiver{

        public void invokeBusinessLogic(org.apache.axis2.context.MessageContext msgContext, org.apache.axis2.context.MessageContext newMsgContext)
throws org.apache.axis2.AxisFault{ try { // get the implementation class for the Web Service
Object obj = getTheImplementationObject(msgContext); VodServiceSkeleton skel = (VodServiceSkeleton)obj;

如果同通过客户端调用服务端,需要将上述代码修改为如下:

    public class VodServiceMessageReceiverInOut extends org.apache.axis2.receivers.AbstractInOutMessageReceiver{
//VodServiceSkeleton为服务端文件的控制类,将他进行私有化,通过反射进行调用
private VodServiceSkeleton skel =
com.allcam.bpc.common.SpringContextHolder.getBean(VodServiceSkeleton.class); public void invokeBusinessLogic(org.apache.axis2.context.MessageContext msgContext, org.apache.axis2.context.MessageContext newMsgContext)
throws org.apache.axis2.AxisFault{ try { // get the implementation class for the Web Service
// Object obj = getTheImplementationObject(msgContext); // VodServiceSkeleton skel = (VodServiceSkeleton)obj;

改为以上代码就可以进行相互调用了,小知识点但却很重要。

直接对比前后代码截图:左边为直接生成代码,右边为修改后调用的代码

学识尚浅,有问题欢迎指出。

axis2框架用wsdl文件生成的服务端MessageReceiveInOut文件注意事项的更多相关文章

  1. C#根据WSDL文件生成WebService服务端代码

    转自:http://www.cnblogs.com/liyi93/archive/2012/01/30/2332320.html 虽然现在已经进入了.NET FrameWork 4.0的时代,WebS ...

  2. 根据wsdl反向生成webservice服务端(3种方法)

    前言 正常情况下,都是我们项目组创建一个webservice服务端,客户通过我们提供的wsdl地址生成客户端并进行访问:但是最近和一个国企做接口对接,他们却只提供给我们wsdl,需要我们根据wsdl生 ...

  3. C# 利用VS自带的WSDL工具生成WebService服务类

    C# 利用VS自带的WSDL工具生成WebService服务类   WebService有两种使用方式,一种是直接通过添加服务引用,另一种则是通过WSDL生成. 添加服务引用大家基本都用过,这里就不讲 ...

  4. 记一次在Eclipse中用Axis生成webservice服务端的过程中出现的问题

    问题一. Unable to find config file.  Creating new servlet engine config file: /WEB-INF/server-config.ws ...

  5. 无框架完整搭建安卓app及其服务端(一)

    技术背景: 我的一个项目做的的是图片处理,用 python 实现图片处理的核心功能后,想部署到安卓app中,但是对于一个对安卓和服务器都一知半解的小白来说要现学的东西太多了. 而实际上,我们的项目要求 ...

  6. ftpget 从Windows FTP服务端获取文件

    /********************************************************************************* * ftpget 从Windows ...

  7. 通过Java WebService接口从服务端下载文件

    一. 前言 本文讲述如何通过webservice接口,从服务端下载文件.报告到客户端.适用于跨系统间的文件交互,传输文件不大的情况(控制在几百M以内).对于这种情况搭建一个FTP环境,增加了系统部署的 ...

  8. java实现从服务端下载文件

    这边用一个简单的servlet实现java从服务端下载文件的操作 写一个servlet: <servlet> <servlet-name>DownloadServlet< ...

  9. 从服务端下载文件到本地windows

    之前常使用本地ubuntu和远程的centos服务器或者是本地mac和远程centos服务器通过命令scp或者nc来进行文件的传输. 现在用的是windows系统,欲将服务器的某文件load到本地. ...

随机推荐

  1. PHP 常用命令行

    1.PHP运行指定文件 php -f test.php (-f 可省略) 2.命令行直接运行PHP代码 php -r "phpinfo();" 如果结果太长,还可以 php -r ...

  2. [py]函数中yield多次返回,延迟计算特性-杨辉三角

    搞清什么是杨辉三角 每行是一个数组, 第一行: [1] 第二行: [1, 1] 第三行: [1, 2, 2, 1] ... 画的好看点就是,不过没啥卵用 1 / \ 1 1 / \ / \ 1 2 1 ...

  3. tf.nn.embedding_lookup函数的用法

    关于np.random.RandomState.np.random.rand.np.random.random.np.random_sample参考https://blog.csdn.net/lanc ...

  4. TempData["a"]多个Action方法之前共享数据

    ViewData["a"]只可以在自己视图的页面里被访问,但TempData["a"]可以多个Action方法之前共享数据,比如在 @{Html.RenderA ...

  5. django的分页器

    Django中分页器的使用 django分页器模块 #分页器 from django.core.paginator import Paginator,EmptyPage,PageNotAnIntege ...

  6. unity3d-准备工作

    1.软件下载 想进行unity3d游戏开发,首先unity3d官网下载软件:unity3d下载 2.运行游戏界面 3.安装Visual Studio Tools for Unity unity3d自带 ...

  7. potplayer启动慢的各种奇葩原因

    此博文可能会持续更新,因为启动慢的原因各种奇葩啊 1.声卡(螃蟹卡)驱动导致的启动慢.解决方法:potplayer中,"选项"->"声音"->修改一 ...

  8. SQL Server 将查询结果导出插入(insert)语句的简单方式

    转自 http://blog.csdn.net/danny_style/article/details/45166391 1.首先将查询结果添加到一个原数据库中不存在的表,表名随意命名. 例:SELE ...

  9. 找回丢失的mysql服务的root用户的密码

    一.关闭mysqld服务.服务名称则根据电脑上的实际服务名来决定,windows下则用以管理员身份运行cmd.exe程序,然后输入:net stop mysql的服务名称. 二.打开一个cmd窗口,以 ...

  10. vim 常用命令小结

    1.打开多个窗口 split   上下打开窗口 vsplit     左右开打窗口 ctrl + ww  窗口之间切换 ctrl + wq  退出当前窗口 2.移动光标:     数字 0 : 将光标 ...