MyEclipse + AXIS2
非常感谢呼必斯哈拉图,写得非常的详细,图文并茂。
但是,我的环境和他文中的不太一样,所以根据自己的环境重写如下。
一、环境准备
1.1软件下载准备
Tomcat 5.5下载地址:
http://tomcat.apache.org/download-55.cgi#5.5.20
Axis War包:
http://ftp.wayne.edu/apache/ws/axis2/1_1_1/axis2.war
Axis Eclipse plug-in(代码生成工具和打包工具):
http://apache.justdn.org/ws/axis2/tools/1_1_1/axis2-eclipse-codegen-wizard.zip
http://apache.justdn.org/ws/axis2/tools/1_1_1/axis2-eclipse-service-archiver-wizard.zip
Eclipse 3.2:
http://www.eclipse.org/
MyEclipse5.5M1:
http://www.myeclipseide.com/
1.2安装
A.首先搭建开发环境,将下载的Eclipse解压缩到一个目录,D:eclipse-SDK-3.2-win32。
B.将下载到的Axis 的两个plug-in解压缩到D:Axis-Plugin-Direclipseplugins目录下。
C.在eclipse目录下创建D:eclipse-SDK-3.2-win32eclipselinks,新建文件名为:axis-eclipse-plugin.link
内容为:
path=D:Axis-Plugin-Dir
D.安装MyEclipse5.5M1,将eclipse目录指向D:eclipse-SDK-3.2-win32,删除D:eclipse-SDK-3.2-win32eclipseconfiguration下的org.eclipse.update目录。然后启动MyEclipse,选择“File->New->Other”可以看到如下的两个界面。
1、Axis2 plugins
2、Web Servieces plugins
E.下面开始搭建Web Services的部署环境。
将下载的tomcat5.5解压缩到一个目录D:Tomcat5.5。
F.将axis2.war包拷贝到tomcat安装目录下的webapps目录。
G.启动Tomcat(D:Tomcat5.5binstartup.bat),打开浏览器输入并访问:http://127.0.0.1:8080/axis2 来查看,结果如下图,表示axis2已经工作正常。
二、快速开始
2.1创建webApps项目
启动MyEclipse,新建立一个WebApps(File->New->Project->Web Project),给Project Name 为SayHello,其他保持不改变。
2.2创建WSDL文件
A.选择File->New-Other菜单,进入后找到MyEclipse->Web Services并选择WSDL.如下图:
B.点击下一步按钮,显示如下图:
C.选择“src”目录作为“Enter or select the parent folder”的值,“File name”值给定为SayHello.wsdl。
D.下一步》所有界面内容取默认值,Finish!
E.显示WSDL设计器的界面如下:
F.修改图中标红色的部分:
修改图中的NewOperation为SayHello;
修改input中parameters为SayHelloRequest;
修改output中parameters为SayHelloResponse;
修改完后如下图:
红色框内为变化的内容,WSDL文件修改完毕。
2.3从WSDL生成Java代码
A.选择菜单“File->New->Other”,从对话框中选取“Axis2 Wizards”下面的“Axis2 Code Generator”.点击“Next”
B.进入下一个页面,保持“Generate java source code from WSDL file”被选中,点击“Next”进入下一步。
C.点击“Browse”来选取存放在src目录下的SayHello.wsdl文件,“Next”进入下一步。
D.首先生成客户端代码和测试代码,设置如下:
E.下一步后,选择SayHellosrc目录,如下图:
Finish !
F.重复从A到C的步骤,然后生成服务端代码,设置如下:
后面同E。
G.结束后,刷新项目,如图:
这是由于没有将Axis2的jar包放入class path 中以及源代码的package不为org.example.www.sayhello引起的。
H.修改包名为org.example.www.sayhello并从tomcat中的axis2 web应用WEB-INF/lib目录中加载所有jar包到项目的classpath中。
I.在SayHelloTest.java 中引入junit包。
2.4编写业务代码
打开SayHelloSKeleton.java文件其中的方法如下:
{
// Todo fill this with the necessary business logic
throw new java.lang.UnsupportedOperationException();
}
修改为:
{
try {
}
2.5打包
A.选择菜单“File->New->Other”,从对话框中选取“Axis2 Wizards”下面的“Axis2 Services Archive”.点击“Next”进入下一个页面。
B.选择编译好的class文件所在目录(本项目应该是WebRoot下面WEB-INF/classes),“Next”进入下一步。
C.选择WSDL文件所在目录,此处为src目录下的SayHello.wsdl文件。“Next”,再“Next”。选择services.xm文件。
D.点击“Next”,将记入最后一个页面,此处有两个选项,一个是输出目录一个是处处文件名称。这里的输出文件名称给的是SayHello。点击“Finish”完成。
2.6部署
A.将打包好的文件SayHello.jar拷贝到Tomcat中已经部署的Axis2应用的WEB-INF/services目录下面。
B.重新启动Tomcat。
C.打开浏览器,输入http://127.0.0.1:8080/axis2,并点击其中的“services”链接可以看到SayHello已经被部署。点击SayHello提供的连接可以看到与之对应的WSDL。
2.7调用测试
A.修改SayHelloTest.java文件中的方法testSayHello的内容为:
org.example.www.sayhello.SayHelloStub stub = new org.example.www.sayhello.SayHelloStub(url);
org.example.www.sayhello.SayHelloStub.SayHello request = (org.example.www.sayhello.SayHelloStub.SayHello) getTestObject(org.example.www.sayhello.SayHelloStub.SayHello.class);
request.setIn("Teamlet");
System.out.println(stub.SayHello(request).getOut());
assertNotNull(stub.SayHello(request));
}
从菜单中选择“Run->Run as->JUnit Test 完成测试!
<EOF>
posted on 2008-03-10 23:02 Daniel 阅读(5176) 评论(5) 编辑 收藏 所属分类: WebService
评论
# re: MyEclipse + AXIS2 2008-10-29 22:10 yoan
在使用Axis2 Codegen Wizard的时候报错:
An error occurred while completing process
-java.lang.reflect.InvocationTargetException
... 回复 更多评论
# re: MyEclipse + AXIS2 2009-03-20 16:41 初学者
请问我按照您的步骤做到打包时点finish时报错说是filesets
怎么处理啊?是哪里错了呢QQ114435179 回复 更多评论
# re: MyEclipse + AXIS2 [未登录] 2009-04-18 16:40 王
请问我用的是MyEclipse +tomcat6.5 那两个plugin文件怎么找不到路径Axis-Plugin-Direclipseplugins目录啊?谢谢……
回复 更多评论
# re: MyEclipse + AXIS2 2009-04-21 10:02 pkrosaline
你好。2.5D步骤,一个是Service name,这个是随便自己写的,对吗?另一个是Class name,这个名字写什么呢?我是随便写的。但是最后finish按钮无效。根本无法点击。 回复 更多评论
# re: java.lang.reflect.InvocationTargetException 2009-10-23 17:53 lihw
Axis2 Eclipse plugin: Code Generator 在Finish 时产生Exception: java.lang.reflect.InvocationTargetException
[版本]
Eclipse 3.2
Axis2 1.4
[问题原因]
主要的问题在于 Code Generator plugin 内缺少了 backport-util-concurrent-3.1.jar 包
[解决方案]
- 关闭 Eclipse
- copy %AXIS2_HOME%\lib\backport-util-concurrent-3.1.jar 到下列 folder
%ECLIPSE_HOME%\plugins\Axis2_Codegen_Wizard_1.3.0\lib
- 注册此 jar 包: 編輯 %ECLIPSE_HOME%\plugins\Axis2_Codegen_Wizard_1.3.0\plugin.xml , 在 <runtime> 內加入下面的字串
<library name="lib/backport-util-concurrent-3.1.jar">
<export name="*"/>
</library>
- 执行 Eclipse 即可
- 若问题仍存在, 尝试改变Eclipse 使用的 JRE, 换成 JAVA 6
- 使用 JRE 1.6 启动 Eclipse 后, 若仍有问题, 试着加入 -clean 参数启动 Eclipse, 清除 osig cache:
eclipse.exe -vm "c:\java\jre1.6.0_05\bin\java.exe" -clean -console -consoleLog -debug -vmargs -Xmx384M
- 关闭 Eclipse 后, 再以一般方式启动 Eclipse, 应可解决问题
回复 更多评论
# re: MyEclipse + AXIS2 [未登录] 2010-01-07 21:26 xxx
| 验证码 | ||
BlogJava
Copyright © Daniel
| |||||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
|---|---|---|---|---|---|---|---|---|---|
| 27 | 28 | 29 | 30 | 31 | 1 | 2 | |||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 | |||
| 10 | 11 | 12 | 13 | 14 | 15 | 16 | |||
| 17 | 18 | 19 | 20 | 21 | 22 | 23 | |||
| 24 | 25 | 26 | 27 | 28 | 29 | 30 | |||
| 31 | 1 | 2 | 3 | 4 | 5 | 6 | |||
导航
统计
- 随笔 - 1
- 文章 - 31
- 评论 - 8
- 引用 - 0
常用链接
留言簿(2)
随笔档案
文章分类
文章档案
- 2009年12月 (3)
- 2009年11月 (1)
- 2009年8月 (1)
- 2009年6月 (1)
- 2009年3月 (3)
- 2008年10月 (4)
- 2008年8月 (5)
- 2008年7月 (1)
- 2008年5月 (3)
- 2008年3月 (3)
- 2007年10月 (1)
- 2007年5月 (2)
- 2006年5月 (3)
相册
搜索
最新评论
- 1. re: java.lang.reflect.InvocationTargetException
- 评论内容较长,点击标题查看
- --lihw
- 2. re: Difference between OOA and OOD
- 大家一起灌水了!
- --hansen
- 3. re: 解决Myeclipes完整版的小问题
- Very good!
- --js
- 4. re: MyEclipse + AXIS2
- 你好。2.5D步骤,一个是Service name,这个是随便自己写的,对吗?另一个是Class name,这个名字写什么呢?我是随便写的。但是最后finish按钮无效。根本无法点击。
- --pkrosaline
- 5. re: Eclipse3.3新特性之RCP
- sdf
- -- Java反射学