myeclipse wsdl客户端生成webservice客户端代码中的一个类没有set方法

在myEclipse上快速开发基于Axis框架的webservice服务
- Sweet之家 - ITeye技术网站
博客分类:
一: 准备工作
MyEclipse Tomcat6的安装与配置(略过)
2:安装Axis2
去http://axis.apache.org/axis2/java/core/download.cgi下载Axis2的应用包,源码包,文档,War包
推荐使用Axis2 1.4.1(本文中的内容都以Axis2 1.4.1版本作为演示)
配置环境变量
例如我的机子上Axis的应用包位于:E:\axis2-1.4.1,那么我需要新增一个环境变量AXIS2_HOME,值为E:\axis2-1.4.1,并且在Path的最后面添加上:E:\axis2-1.4.1\bin
配置完成后试着进入命令行里输入axis2,java2wsdl(由于dos环境不区分大小写,这里大小写随意),如果没有报错并且能展示相应的Help信息,则标志你配置成功了。
3:安装Axis2的Eclipse插件
(插件在我的附件里有提供)下载Axis2的Eclipse插件,可以在我本文的附件里直接下,或者去官方网站下载
我选择的是1.4.1的插件,注意官方给的插件包里的版本号还是写着1.3.0,所以需要你解压完成后手动修改文件目录名为1.4.1以及目录中plugin.xml为1.4.1
安装Eclipse插件因Eclipse版本的不同而有很多种方法,我机器上的MyEclipse的版本是5.5,我的安装方法是:
解压插件包,将其置于MyEclipse的E:\myeclipse\dropins下面(注意之前的版本号一定要改,不然后续做插件集成的时候会出错)。
解压完成后,需要做以下的修改操作.
第一步:从Axis2包的lib目录下拷贝2个文件到你插件Axis2_Codegen_Wizard_1.4.1位置的lib下。例如在我的机器上就需要执行:
cp E:\axis2-1.4.1\lib\backport-util-concurrent-3.1.jar E:\myeclipse\dropins\Axis2_Codegen_Wizard_1.4.1\lib\backport-util-concurrent-3.1.jar
cp E:\axis2-1.4.1\lib\geronimo-stax-api_1.0_spec-1.0.1 E:\myeclipse\dropins\Axis2_Codegen_Wizard_1.4.1\lib\geronimo-stax-api_1.0_spec-1.0.1
第二步:进入Axis2_Codegen_Wizard_1.4.1,打开plugin.xml,找到runtime文档元素节点末尾前面,加上:
&library name="lib/backport-util-concurrent-3.1.jar"&
&export name="*"/&
&/library&
&library name="lib/geronimo-stax-api_1.0_spec-1.0.1"&
&export name="*"/&
&/library&
OK,Eclipse插件集成完成。打开你的MyEclipse,点击New-&other查看是否出现了如下所示的界面:
二:你可以开始快速开发Axis2的Webservice了
1: 新建一个Java web工程,起名为SayHello,在classpath里导入Axis2的所有JAR包
2:在src目录下,新建一个SayHello.wsdl文件,并将其修改成如下样式:
3:开始利用它生成客户端代码
右键点击src,点击new-&other-&Axis2 Wizards-&Axis2 Code Generator,点击下一步(next):
选中Generate Java source from a WSDL file然后继续点击下一步
在如下所示的界面中,输入你的wsdl所在位置:
继续点击下一步,按照如下界面进行配置:
点击下一步,按照如下所示界面进行配置:
然后点击finish即可
4:最后利用它生成服务器端代码
还是跟刚才一样,选中codeGenerator,一直下一步到如下界面修改下:
然后下一步直到完成。
当你完成的时候,是不是发现有很多红叉叉?不要紧,那是因为你生成的包名有错误,也算是Axis2插件的问题吧。
如图所示,你生成的文件应该是跟这里面的红叉叉文件一样。不要紧,只需要修改包名即可,去掉最开头的src,就像resources上面的那个包一样。
三:发布Webservice服务
拷贝你刚才下的Axis2.war包到tomcat的webapps下面,并启动tomcat,启动后输入,可以看到axis2的欢迎界面。可以进入Administration里,查看当前可用的服务(默认用户名/密码是admin/axis2)
点击new-&other-Axis2 Wizards ,不过这里选择的是Service Archiver,点击下一步。
在出现的界面中,安装如下图片配置:
点击下一步:
配置OK后,继续下一步&下一步:
继续下一步,然后配置文件输出目录,我选择的是所在工程下新建一个dist目录,让文件输出到该目录下:
最后点击finish,即可。将工程目录dist文件夹下生成的SayHello.aar拷贝到tomcat的axis2的对应目录下。例如在我的机器上需要拷贝到:E:\apache-tomcat-6.0.28\webapps\axis2\WEB-INF\services目录下面
启动Tomcat,进入Axis2的控制台,查看SayHello的服务是否可用。你会发现它提示你服务错误。这时你需要修改resources目录下面services.xml文件。将它修改成:
&parameter name="useOriginalwsdl"&true&/parameter&
&parameter name="useOriginalwsdl"&false&/parameter&
重新走一次发布流程。这回应该不会有错误了。
四:测试Webservice
修改org.example.www.sayhello目录下SayHelloSkeleton类。将SayHello方法修改成这样:
public org.example.www.sayhello.SayHelloResponse SayHello(
org.example.www.sayhello.SayHello sayHello) {
SayHelloResponse response
= new SayHelloResponse();
response.setOut("Hi," + sayHello.getIn() + ".How are you");
} catch (Exception e) {
throw new RuntimeException(e);
然后在org.example.www.sayhello下新建一个SayHelloTest,然后输入以下内容:
package org.example.www.
public class SayHelloTest extends junit.framework.TestCase {
public void testSayHello() throws java.lang.Exception {
org.example.www.sayhello.SayHelloStub stub =
new org.example.www.sayhello.SayHelloStub(
"http://localhost:8080/axis2/services/SayHello");
org.example.www.sayhello.SayHelloStub.SayHello sayHello2 =
(org.example.www.sayhello.SayHelloStub.SayHello)
getTestObject(org.example.www.sayhello.SayHelloStub.SayHello.class);
sayHello2.setIn("sweet");
System.out.println(stub.SayHello(sayHello2).getOut());
assertNotNull(stub.SayHello(sayHello2));
// Create an ADBBean and provide it as the test object
public org.apache.axis2.databinding.ADBBean getTestObject(
java.lang.Class type) throws java.lang.Exception {
return (org.apache.axis2.databinding.ADBBean) type.newInstance();
重新走一次发布流程,然后运行这个Junit类,就可以正确查看到结果了。
下载次数: 463
下载次数: 546
bestchenwu
浏览: 271792 次
来自: 武汉
用retainAll不就行了
赞!! 配合代码解释得很详细!! 谢谢了!!
写的真好,,以前就知道java与javascript是值传递, ...
document.getElementById(& ...leizhimin 的BLOG
用户名:leizhimin
文章数:710
评论数:2587
注册日期:
阅读量:2466
阅读量:1367
阅读量:1717
51CTO推荐博文
用IDEA8快速开发WebService客户端
可能用到的工具包如下:
一、为什么要生成客户端代码
生成WebService的客户端的代码的目的是为了方便请求和提高性能。
因为有了存根,就可以以本地代码编程的方式来调用WebService服务。
因为存根代码是在本地静态编译的,这比动态请求解析wsdl要快,不同的框架框架实现性能差异也很大。
有了本地存根代码,便于对WebService的请求管理在本地做进一步封装。
出于以上原因,做WebService程序,应该生成本地存根代码,通过存根来调用WebService服务。
二、生成原理
一般来说,流行的XFire、Axis2、CXF等都有一些工具,统称为WSDL2Java工具。这些工具的作用就是为了生成WebService客户端存根的。
IDEA生成存根代码的原理实际上通过调用这些WSDL2Java工具来生成的。因此,在使用IDEAWebService客户端代码生成工具的时候,需要配置相应的框架包。
三、IDEA8生成代码前的配置
在生成之前,首先需要配置WebService插件,特别说明,IDEA8自带的插件:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/639201.png" border="0" />
四、具体操作过程
下面举例说明如何使用。
以上篇的XFire WebService开发快速起步中服务端的例子为例。
1、通过XFire工具包来生成客户端代码
如果要生成客户端代码,可以新建一个一个工程后
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/828232.png" border="0" />
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/935592.png" border="0" />
然后,点击OK,就等着吧,过一会就生成好了,与MyEclipse生成的差不多。
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/087201.png" border="0" />
这个代码怎么用可以参看上篇中用法,超级简单。
2、使用Axis2来从WSDL来生成java存根代码
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/399763.png" border="0" />
注意:这里说明下,如果你选择的是Axis2,则应该优先使用ADB数据绑定方式,为了清楚如何使用存根代码,强烈建议生成TestCase。
其他用CFX等也很容易,过程都差不多,在此不再赘述。
总之,用什么框架开发WebService与用什么工具WebService 存根是没有关系的。 因为都是从WSDL来生的。
&本文出自 “” 博客,转载请与作者联系!
了这篇文章
附件下载:  
类别:┆阅读(0)┆评论(0)
11:31:02 14:34:05
请输入验证码:MyEclipse 10加入WebService的简单方法 - Java教程 - 编程入门网
MyEclipse 10加入WebService的简单方法
需要用到WebService,回忆了半天怎么直接用MyEclipse生成。
首先,我的项目是已经存在的,不能新建WebService项目再迁移。
然后,编写好要用于发布的类方法对象(跟普通的类没任何区别)。
最关键的来了,咱们新建一个web service
选择你的项目,并选择如图红框处
选择你要发布成webservcie的类,其他都不用管
这就完成了。
找到你的Web,xml中的&XXXXPort&,其中的XXXX应该是你发布的类名,然后启动你的服务,在浏览器里输入http://localhost:port/项目名/XXXXPort,应该会出现的是一个Webservice列表页面,如下图:
上图画红框处就是传说中的wsdl了,记录下该地址,这时候可以打开,myeclipse自带的webservice测试浏览器进行测试了,如下图:
图中,1:点击可使用WebserviceExplorer;2:填写webservice的传入参数值;3:通过你webservice处理后的返回结果。
对了,还有一件非常重要的是,加入webservice相关的jar包,这个不知道是不是我环境的事情,myeclipse并没有给我自动加入,需要加入的jar包如下:
websrevice-api.webservice-extra.webservices-extra-api.webservices-rt.webservices-tools.jar。共计5个。
作者:csdn博客 yueritianMyeclipse中自动生成webService客户端代码
在MyEclipse下利用已经发布了的Webservice的wsdl来自动生成java的客户端代码之步骤:
1.利用MyEclipse来创建Web
Service Client
2.填写远程Webservice的wsdl地址
3.WDSL验证
4.生成的客户端代码
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 myeclipse代码格式化 的文章

 

随机推荐