当前位置: 代码迷 >> Web前端 >> Eclipse3[一].2+MyEclipse5.5M1+axis2_1.1.1+tomcat5.5_开发Web_Services
  详细解决方案

Eclipse3[一].2+MyEclipse5.5M1+axis2_1.1.1+tomcat5.5_开发Web_Services

热度:619   发布时间:2012-10-28 09:54:44.0
Eclipse3[1].2+MyEclipse5.5M1+axis2_1.1.1+tomcat5.5_开发Web_Services
在网上看到的由--呼必斯哈拉图--写的"Apache AXIS 开发 Web Services Step By Step",跟着做了一遍。
非常感谢呼必斯哈拉图,写得非常的详细,图文并茂。
但是,我的环境和他文中的不太一样,所以根据自己的环境重写如下。
一、环境准备
1.1软件下载准备
Tomcat 5.5下载地址:
http://tomcat.apache.org/download-55.cgi#5.5.20 <http://tomcat.apache.org/download-55.cgi>
Axis War包:
<http://ftp.wayne.edu/apache/ws/axis2/1_1_1/axis2.war> <http://ftp.wayne.edu/apache/ws/axis2/1_0/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 <http://apache.justdn.org/ws/axis2/tools/1_0/Axis2_Service_Archiver.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'可以看到如下的两个界面。
1Axis2 plugins
<IMG>

2Web Servieces plugins
<IMG>
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已经工作正常。
<IMG>
二、快速开始
2.1创建webApps项目

启动
MyEclipse,新建立一个WebAppsFile->New->Project->Web Project,Project Name SayHello,其他保持不改变。

2.2创建WSDL文件

A.选择File->New-Other菜单,进入后找到MyEclipse->Web Services并选择WSDL.如下图:
<IMG>
B.点击下一步按钮,显示如下图:
<IMG>
C.选择"src'目录作为"Enter or select the parent folder'的值,"File name'值给定为SayHello.wsdl
D.下一步》所有界面内容取默认值,Finish
E.显示WSDL设计器的界面如下:
<IMG>
F.修改图中标红色的部分:
修改图中的
NewOperationSayHello;
修改inputparametersSayHelloRequest;
修改outputparametersSayHelloResponse;
修改完后如下图:
<IMG>
红色框内为变化的内容,
WSDL文件修改完毕。
2.3WSDL生成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.首先生成客户端代码和测试代码,设置如下:
<IMG>
E.下一步后,选择SayHellosrc目录,如下图:
<IMG>
Finish !
F.重复从AC的步骤,然后生成服务端代码,设置如下:
<IMG>

后面同
E
G.结束后,刷新项目,如图:
<IMG>
这是由于没有将
Axis2jar包放入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文件其中的方法如下:
public org.tonyzhangcn.ws.sayhello.SayHelloResponse SayHello(org.tonyzhangcn.ws.sayhello.SayHelloRequest param0)

{

// Todo fill this with the necessary business logic

thrownew java.lang.UnsupportedOperationException();

}
修改为:
public org.tonyzhangcn.ws.sayhello.SayHelloResponse SayHello(org.tonyzhangcn.ws.sayhello.SayHelloRequest request)
{
try {
SayHelloResponse response = new SayHelloResponse();
response.setOut("Hi,"+request.getIn()+".How are you?");
return response;
}catch(UnsupportedOperationException e)
{
throw e;
}
}
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的内容为:
public void testSayHello() throws java.lang.Exception {
String url="<http://localhost:8080/axis2/services/SayHello>";
org.example.www.sayhello.SayHelloStub stub = new org.example.www.sayhello.SayHelloStub(url);
org.example.www.sayhello.SayHelloStub.
SayHelloRequestrequest = (org.example.www.sayhello.SayHelloStub.SayHelloRequest) getTestObject(org.example.www.sayhello.SayHelloStub.SayHelloRequest.class);
request.setIn("Teamlet");
System.out.println(stub.SayHello(request).getOut());
assertNotNull(stub.SayHello(request));
}
从菜单中选择"Run>Run as->JUnit Test 完成测试!
?
?
?
  相关解决方案