使用Axis2调用Web Service

本文作为使用Axis2创建Web Service的后篇,主要介绍如何使用Axis2调用Web Service。有关准备工作详情请参考前篇的内容。

在Eclipse的Packge Explorer中右键点击New,选择Other项,新建一个Axis2 Code Genrateor向导。点击Next,打开向导选择界面:

image

选择Generate Java Source code from a WSDL file,点击Next。

image

在WSDL file location中输入WSDL文件的地址,点击Next。

image

使用默认设置,继续Next。

image

选择文件输出路径,点击Finish。啊哦,可怕的事情发生了:

image

于是Google,得知要将Tomcat安装目录下的webapps/axi2/WEB-INF/lib下的backport-util-concurrent-3.1.jar复制到eclipse\plugins\Axis2_Codegen_Wizard_1.3.0\lib目录下,没想到我的axis2的lib下竟然没有backport-util-concurrent-3.1.jar,于是网上下载了一个。至于为什么没有这个文件,至今还没有搞明白。

复制之后,修改%ECLIPSE_HOME%\plugins\Axis2_Codegen_Wizard_1.3.0\plugin.xml文件,在<runtime/>标签中添加该 jar的注册信息。如下:

<library name="lib/backport-util-concurrent-3.1.jar"><export name="*"/>
</library>

然后,在命令行下切换至%ECLIPSE_HOME%目录,使用-clean参数启动Eclipse,清除osig cache,如下:

eclipse.exe -vm "c:\jre1.5.0_10\bin\java.exe" -clean -console -consoleLog -debug -vmargs –mx384M

然后关闭Eclipse,使用普通方式重新启动,再按上述步骤重新来过,问题终于解决。

image

刷新项目,会发现net.kirin.webservice包中多了两个文件(文件的位置由以上最后一步文件的输出路径决定):

image

之所以会有错误,是因为还没有安装Axis2的类包。

在项目上右键选择Build Path—>Add External Archives,选择Tomcat安装目录webapps/axi2/WEB-INF/lib下的所有jar包。或则选择项目属性—>Java Build Path—>Add External JARs,选择所有jar包。

image

在项目中新建CalculateServiceTest单元测试类(JUnit),输入如下代码(当然,别忘了添加junit的jar包):

 

package net.kirin.webservice;import junit.framework.*;public class CalculateServiceTest extends TestCase{public void testCalculateService()  throws Exception {CalculateServiceStub stub = new CalculateServiceStub();CalculateServiceStub.Add add = new CalculateServiceStub.Add();add.setX(1);add.setY(2);double retVal = stub.add(add).get_return();Assert.assertEquals(3.0, retVal);}
}

运行单元测试,顺利通过:

image

至此,我们完成了使用Axis2调用Web Service的过程。

 

参考资料:

axis2创建web service(三)

java.lang.reflect.InvocationTargetException axis2 code generator error resolved

转载于:https://www.cnblogs.com/kirinboy/archive/2009/09/22/1571593.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476182.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 旋转数组 系列

旋转数组系列&#xff0c;多数是排序数组进行了旋转&#xff0c;可以使用二分查找。做一个集合&#xff0c;如还有缺失的&#xff0c;可以留言指出&#xff0c;一起加油&#xff01; LeetCode 33. 搜索旋转排序数组&#xff08;二分查找&#xff09; LeetCode 81. 搜索旋转排…

如何并行运行程序

参考了官方文档&#xff0c; torch.nn.parallel.DataParallel 以及https://zhuanlan.zhihu.com/p/102697821 在运行此DataParallel模块之前&#xff0c;并行化模块必须在device_ids [0]上具有其参数和缓冲区。在执行DataParallel之前&#xff0c;会首先把其模型的参数放在devi…

matlab打开笔记本摄像头_matlab窗口调用摄像头

更改”.m“文件&#xff1a;function varargout untitled1(varargin)% UNTITLED1 MATLAB code for untitled1.fig% UNTITLED1, by itself, creates a new UNTITLED1 or raises the existing% singleton*.%% H UNTITLED1 returns the handle to a new UNTITLED…

session过期后登陆页面跳出iframe页面问题

登陆页面增加javascript&#xff1a;function window.onload(){if(window.parent.length>0)window.parent.locationlocation;}转载于:https://www.cnblogs.com/shenyunjun420/archive/2009/09/29/1576400.html

LeetCode 1143. 最长公共子序列(动态规划)

1. 题目 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串&#xff1a;它是由原字符串在不改变字符的相对顺序的情况下删除某些字符&#xff08;也可以不删除任何字符&#xff09;后组成的新…

【DKN】(四)train.py

内容 try: #不用多言&#xff0c; 获得该模块下的model_name函数Model getattr(importlib.import_module(f"model.{model_name}"), model_name)config getattr(importlib.import_module(config), f"{model_name}Config") except AttributeError:print(…

用promise封装ajax_ES6-promise封装AJAX请求

【摘要】ES6-promise封装AJAX请求考必过小编为大家整理了关于ES6-promise封装AJAX请求的信息&#xff0c;希望可以帮助到大家&#xff01;ES6-promise封装AJAX请求标签&#xff1a;const状态码setreject对象响应状态ISErequest// 接口地址:https://api.apiopen.top/getJoke// 1…

REST和SOAP Web Service的比较(写得非常清晰易懂,转载于此)

本文转载自他人的博客&#xff0c;ArcGIS Server 推出了 对 SOAP 和 REST两种接口&#xff08;用接口类型也许并不准确&#xff09;类型的支持,本文非常清晰的比较了SOAP和Rest的区别联系&#xff01;REST似乎在一夜间兴起了&#xff0c;这可能引起一些争议&#xff0c;反对者可…

LeetCode 1249. 移除无效的括号(栈+set / deque)

1. 题目 给你一个由 (、) 和小写字母组成的字符串 s。 你需要从字符串中删除最少数目的 ‘(’ 或者 ‘)’ &#xff08;可以删除任意位置的括号)&#xff0c;使得剩下的「括号字符串」有效。 请返回任意一个合法字符串。 有效「括号字符串」应当符合以下 任意一条 要求&…

【DKN】(七)dataset.py【未完】

内容 里面有的函数在这里https://blog.csdn.net/qq_35222729/article/details/119882362 try:config getattr(importlib.import_module(config), f"{model_name}Config") except AttributeError:print(f"{model_name} not included!")exit()class BaseDa…

php raabitmq中间件_rabbitMQ消息中间件环境配置及原理了解

视频教程一、Docker 入门Docker是什么&#xff1f;Docker 是一个开源的应用容器引擎&#xff0c;你可以将其理解为一个轻量级的虚拟机&#xff0c;开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任 何流行的 Linux 机器上。为什么要使用 Docke…

CSS 中的定位:relative,absolute

今天碰到一个定位问题&#xff0c;问题解决不好&#xff0c;于是花了大量的时间&#xff0c;调试了好久&#xff0c;得出了一些结果&#xff1a;1、如果有两个不交叉的盒子位于一个大盒子里面&#xff0c;位于上边的盒子的定位为relative&#xff0c;而下边的那个盒子的定位则是…

【DKN】(六)KCNN.py

内容 import torch import torch.nn as nn import torch.nn.functional as F from src.model.general.attention.additive import AdditiveAttentiondevice torch.device("cuda:0" if torch.cuda.is_available() else "cpu")class KCNN(torch.nn.Module):…

北京精雕现状_6秒精密加工,日本走下神坛,北京精雕也做了一个!

各位社友还记得吗&#xff0c;机械社区之前分享过——日本6秒的精密加工火遍制造业圈子~▲点击上图 查看日本怎么用6s让世界惊奇在一阵惊呼赞叹中&#xff0c;一部分人也表示不服&#xff01;比如&#xff0c;国内一位牛人也展示了他的产品。一起看看视频介绍吧——而近日&…

LeetCode 859. 亲密字符串

1. 题目 给定两个由小写字母构成的字符串 A 和 B &#xff0c;只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果&#xff0c;就返回 true &#xff1b;否则返回 false 。 示例 1&#xff1a; 输入&#xff1a; A "ab", B "ba" 输出&#xff1a…

ASP.Net快速开发新闻系统 在线播放

http://www.so138.com/sov/d19a5913-88cf-4abf-a487-69293bb0c403.html转载于:https://www.cnblogs.com/freedom831215/archive/2009/10/03/1577631.html

【DKN】(五)attention.py

感觉还是挺简单&#xff0c;这里只是方便之后回来瞅瞅 import torch import torch.nn as nn import torch.nn.functional as Fclass Attention(torch.nn.Module):"""Attention Net.Input embedding vectors (produced by KCNN) of a candidate news and all of…

小米扫地机器人充电座指示灯不亮_小米扫地机器人常见问题处理 充电后无法取电怎么办?...

与其他科技领域一样&#xff0c;人工智能领域也得到蓬勃发展。如今人工智能已经无处不在。专家把人工智能比作电力&#xff0c;因为它是一种可能改变各行各业的资源。诚然&#xff0c;每个领域都有一些特别重要的技术&#xff0c;例如随着生活的水平的提高&#xff0c;扫地机器…

Enterprise Library 4.1 快速上手(图)

简介&#xff1a; 关于Enterprise Library 的概念&#xff0c;网上可以很容易的找到&#xff0c;在这里要做的是如何快速的打通Enterprise Library 4.1的使用&#xff0c; 让咱们可以用最短的时间使用起来&#xff0c;并且在需要的时候在此基础上再花时间延伸&#xff0c;这是学…

知识图谱源码详解【八】__init__.py

import torch from src.model.DKN.KCNN import KCNN from src.model.DKN.attention import Attention from src.model.general.click_predictor.DNN import DNNClickPredictor# 就是把整个模型框架梳理到一块了&#xff01; class DKN(torch.nn.Module):"""Deep…