- 浏览: 223183 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
wsj0051:
很好,一致纠结图片路径问题
Spring 发送普通邮件、夹带附件的邮件、嵌入网页或图片的邮件 使用方法 -
ejinxian:
值得学习,
ExtJS+FusionCharts(转) -
niewj:
不知道都是哪里来的。
111
Axis2+wsdl2java.bat生成JAVA客户端调用
- 博客分类:
- STRUTS2学习
Axis2和Axis相比,增加了异步调用的方式,而且代码的使用更方便。本文用一个例子来描述如何快速使用Axis2来创建WebService客户端代码。
1 准备环境
(1)下载Axis2,并解压。
官方网址:http://ws.apache.org/axis2/
(2)设置环境变量
SET AXIS2_HOME=解压后bin目录所在的目录,尽量不要有空格或中文
SET PATH=%AXIS2_HOME%\bin;%PATH%
(3) 修改bin目录中的wsdl2java.bat
为了方便使用,以及避免一些NoClassFoundException类似的问题,修改wsdl2java.bat文件,查找:
set _RUNJAVA="%JAVA_HOME%\bin\java"
在这一行下面增加如下一行
set JAVA_OPTS="-Djava.ext.dirs=%AXIS2_HOME%\lib"
2 以一个WhoIs WebService为例:
生成存根代码
WSDL2Java -uri http://www.webservicex.net/whois.asmx?wsdl -o d:/src
程序运行完成后,在src文件生成如下文件:
E:\SRC\NET
└─webservicex
└─www
WhoisCallbackHandler.java
WhoisStub.java
只要记住:
先生成一个stub实例
在stub中service的方法以成为它的一个变量。我们生成一个类似于方法的对象
给这个方法input,调用参数。
用前面生成的方法对象调用stub实例中的与server中的同名方法。并返回一个Response,
调用response的get_return()得到返回值!
1 准备环境
(1)下载Axis2,并解压。
官方网址:http://ws.apache.org/axis2/
(2)设置环境变量
SET AXIS2_HOME=解压后bin目录所在的目录,尽量不要有空格或中文
SET PATH=%AXIS2_HOME%\bin;%PATH%
(3) 修改bin目录中的wsdl2java.bat
为了方便使用,以及避免一些NoClassFoundException类似的问题,修改wsdl2java.bat文件,查找:
set _RUNJAVA="%JAVA_HOME%\bin\java"
在这一行下面增加如下一行
set JAVA_OPTS="-Djava.ext.dirs=%AXIS2_HOME%\lib"
2 以一个WhoIs WebService为例:
生成存根代码
WSDL2Java -uri http://www.webservicex.net/whois.asmx?wsdl -o d:/src
程序运行完成后,在src文件生成如下文件:
E:\SRC\NET
└─webservicex
└─www
WhoisCallbackHandler.java
WhoisStub.java
3 同步调用 (1) 编写DemoSync.java import net.webservicex.www.*; public class DemoSync { public static void main(String[] args) { try { WhoisStub stock=new WhoisStub(); WhoisStub.GetWhoIS param=new WhoisStub.GetWhoIS(); param.setHostName("www.sohu.com"); WhoisStub.GetWhoISResponse response=stock.GetWhoIS(param); System.out.println(response.getGetWhoISResult()); } catch (java.rmi.RemoteException remoteException) { remoteException.printStackTrace(); } } } (2) 测试 运行java -Djava.ext.dirs=%AXIS2_HOME%\lib DemoSync 4 异步调用 (1) 继承WhoisCallbackHandler类,如下编写MyWhoisCallbackHandler.java; package net.webservicex.www; public class MyWhoisCallbackHandler extends WhoisCallbackHandler{ public void receiveResultGetWhoIS( net.webservicex.www.WhoisStub.GetWhoISResponse result) { System.out.println(result.getGetWhoISResult()); } } (2) 编写DemoAsync.java import net.webservicex.www.*; public class DemoAsync { public static void main(String[] args) { try { WhoisStub stock=new WhoisStub(); WhoisStub.GetWhoIS param=new WhoisStub.GetWhoIS(); param.setHostName("www.sohu.com"); WhoisCallbackHandler handler=new MyWhoisCallbackHandler(); stock.startGetWhoIS(param,handler); System.out.println("Sent a request."); while(handler.getClientData()==null) { try{ Thread.sleep(30000);//等待Handler返回结果,以测试返回情况,实际应用中,此处可以去做其他操作,当结果返回时在MyWhoisCallbackHandler.receiveResultGetWhoIS()方法中把数据进行显示、保存或激活其他时间等操作。 }catch(InterruptedException e){} } } catch (java.rmi.RemoteException remoteException) { remoteException.printStackTrace(); } } } (3) 测试 运行java -Djava.ext.dirs=%AXIS2_HOME%\lib DemoAsync Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1743249 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Web Service - axis2 最近在项目中有用到web service。在做之前google了一下,发现网上有扑天盖地的有这方面的一些文章。说这是下代在技术的制高点!我axis2做了一下“hello world !“没感到有太大的难度,可能是没有用到高级的特性吧!先写好你要发布成service的类。pojo就行了!: public class MiniService { public String hello(String msg) { return "Hello World"; } } 要想正确的deploy一个server,其中server.xml这个文件是必不可少的,下面就是这个例子中所用到的 server.xml文件:请注意这个文件是要放在META-INF这个文件中的。 <?xml version="1.0" encoding="UTF-8"?> <service> <parameter name="ServiceClass" locked="false">com.inventec.ws.MiniService</parameter> <operation name="hello"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </operation> </service> 最后打包好的jar文件放到 axis2\WEB-INF\services 下。tomcat就会将这个服务deploy. 要想正确的调用这个service你还得生成stub.用axis2所自带的工具就可很简单生成stub.如: D:\ws>wsdl2java -uri http://localhost:8080/axis2/services/ws?wsdl 生成的东东很长看得很累!你在调用时基本上可用类以如下的方法: public class WsTest { /** * @param args * @throws RemoteException */ public static void main(String[] args) throws RemoteException { // TODO Auto-generated method stub WsStub stub = new WsStub(); WsStub.Hello request = new WsStub.Hello(); /**/ request.setMsg("jade");/**/ WsStub.HelloResponse reponse = stub.hello(request); String str = reponse.get_return(); System.out.println("str = " + str); } }当然若你发布的server若是没有参数的一个方法则在调用时不要生成这个方法对象。
只要记住:
先生成一个stub实例
在stub中service的方法以成为它的一个变量。我们生成一个类似于方法的对象
给这个方法input,调用参数。
用前面生成的方法对象调用stub实例中的与server中的同名方法。并返回一个Response,
调用response的get_return()得到返回值!
发表评论
-
JSONException:java.lang.reflect.InvocationTargetException异常处理
2012-11-19 14:38 1451由于我使用Spring对项目进行重构,由Spring容器来管理 ... -
Spring C3P0 配置
2012-11-06 10:35 897<?xml version="1.0&qu ... -
request获得所有参数
2012-08-13 15:38 51508获取request里的所有参数及参数名(参数名自动获取) ... -
删除某个文件夹下的一周前的文件
2012-06-04 14:25 2577Java操作删除某个文件夹下的一周前的文件 这里我使用的是定时 ... -
Struts2 Iterator 使用
2012-05-28 09:39 1113在Struts2中,遍历集合的方式通常用iterator。 下 ... -
使用HttpUrlConnection 事列
2012-05-03 10:19 1006使用HttpUrlConnection下载Web网站上的图片并 ... -
Hibernate 保存Clob 和Blob
2012-04-26 15:25 6667注意:目前只能操作Clob,因为不想用Session直接操作! ... -
使用Spring Quartz 定时任务
2012-04-26 14:42 1128使用Spring Quartz 定时任务时需要以下几点: 1、 ... -
Java读取配置文件
2012-03-14 14:32 818//一.读取xml配置文件 //1.新建一个bean对象 ... -
JSON转JAVA
2011-11-16 14:23 1194转: 1、DTO:Data Transfer Object ... -
JSON数据查看器
2011-11-16 09:49 912http://jsonviewer.stack.hu/ -
JSP隐藏对象
2011-11-09 16:52 830一、page 对象 page对象代表JSP本身,更准 ... -
Unable to compile class for JSP
2011-09-20 15:11 1412type Exception report messag ... -
struts2标签 我勒个去了 转
2010-12-14 10:24 1100要使用Struts2的标签,只 ... -
Java对Excel的处理
2009-04-06 18:15 1036Struts2对Excel的操作 1. ...
相关推荐
axis2根据wsdl生成java客户端代码 D:\Software\axis2-1.6.2\bin>wsdl2java.bat -uri http://10.33.30.216:9099/facs/services/ResourceSynchroWebService?wsdl -o E:\wsdloutput -p com.util wsdl2java.bat -uri ...
抛出无法找到主类:org.apache.axis.wsdl.WSDL2Java(Throws Could not find main class: org.apache.axis.wsdl.WSDL2Java)。 添加本文的jar包压缩包解压出来的所有jar包到当前使用的java.exe 命令的lib目录下的ext...
wsdl2java.bat
MyEclipse axis2 wsdl java.lang.reflect.invocationtargetexception code gen 大家要注意一定要仔细,这个问题基本上缺少包引起的,而且一定要clean 如果需要axis2插件 以及这个plugins中的包在我的其他资源里面有
axis2解决 org.apache.axis2.util.JavaUtils.callStackToString问题
使用axis2 1.6.2 生成webservice wsdl客户端代码,快速便捷,方便操作。使用有问题可留言,如看到尽快回复
稍微复杂一些的,-p可以指定生成的package,-o指定生成的路径,-ss生成服务端代码wsdl2java -uri ../wsdl/currencyConvert.wsdl -o ../gen_src -ss -sd -g -p foo.bat再复杂一些,-ns2p 将namespace进行替换,多个...
Axis2完美教程 包括下载部署axis2,java客户端,c#客户端调用 从入门到精通
根据对方提供的webservice地址,你先将对方webservice的wsdl文件描述文件保存到本地为后缀名为.wsdl的文件,然后保存到Tools的这个文件夹下,编辑WSDL2AxisClient.bat这个文件,将%Java_Cmd% org.apache.axis.wsdl....
wsdl2java工具 修改WSDL2Java(URL).bat后直接双击运行即可 编辑 WSDL2Java(URL).bat set Axis_Lib=.\lib //引用包 set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% set Output_Path=.\source //输出目录 set Package...
调用WSDL2Java需要相关jars,使用-cp添加进来,不支持使用通配符。提醒:Linux下jar之间使用冒号隔开:,windows下jar之间使用分号隔开 调用方法 java -cp mail-1.4.jar;saaj-api-1.3.jar;jaxrpc-1.1.jar;commons-...
axis2根据wsdl生成客户端代码,org.apache.axis.wsdl.WSDL2Java配置"src/???.wsdl"自动生成代码
使用cxf wsdl2java生成webservice客户端命令
axis2客户端调用axis1服务接口 调用方式 使用RPC方式调用WebService,为了防止冲突可以增加 // 与weblogic的lib冲突配置 System.setProperty("javax.xml.stream.XMLInputFactory", ...
解决axis2-CodegenWizardPlugin的BUG,java.lang.reflect.InvocationTargetException 带有相关jar 包及相关文件
2、解压之后,编辑(包名,输出路径,wsdl)参数并运行WSDL2Java(URL).bat或者WSDL2Java(file).bat后,将在source中生成WebService客户端代码。 3、直接使用生成的代码调用WebService服务即可。
<Call Stack = DEBUG_FRAME = org.apache.axis2.util.JavaUtils.callStackToString(JavaUtils.java:564) DEBUG_FRAME = org.apache.axis2.description.ParameterIncludeImpl.debugParameterAdd(ParameterIncludeImpl...
axis2-1.6.2.zip, windows axis2工具,根据 WSDL生成java文件。 1、axis2客户端下载地址:http://mirror.esocc.com/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip; 2、下载解压在D:\Work_Program_...
MyEclipse6.0下axis2插件的安装! 解决java.lang.reflect.InvocationTargetException本人亲自测试,完美使用!
Web_Service开发指南(axis+xfire+cxf).pdf