Axis2+Tomcat+MyEclipse部署和访问Web服务

Axis2+Tomcat+MyEclipse部署和访问Web服务

一、环境准备

 

1.1软件下载准备

  Axis Eclipse plug-in(代码生成工具和打包工具):      Axis2_Codegen_Wizard_1.3.0

                                                     Axis2_Service_Archiver_1.3.0

                                   Axis War包:     axis2-1.4-war

                                        Tomcat:      apache-tomcat-5.5.27

                                     MyEclipse:      MyEclipse7.5

 

 

 

1.2安装

 1) 安装MyEclipse7.5

 2) 将下载到的Axis 的两个plug-in(两个压缩包rar解压缩到MyEclipse安装目录下的dropins子目录。

 

删除org.eclipse.update目录。

3)启动MyEclipse,并选择File->New->Other”可以找到下面的这些Wizards

 

4)下面开始搭建Web Services的部署环境。将下载的tomcat报解压缩到一个目录。完成web container 的安装。

5axis2-1.5-war.zip解压完后出现axis2.waraxis2.war包拷贝到tomcat安装目录下的webapps目录中。

6)启动Tomcat,打开浏览器输入并访问:http://ip:8080/axis2来查看,如果能看到下面的页面则说明已经安装完成。

 

 

 

 

二、进入开发

 

2.1 建立要发布的WebService

1MyEclispse中添加一个用户库命名为axis2,将axis2/WEB-INF/lib下的包均添加进来,然后建立一个JavaProject命名为AccountService,将axis2用户库加入到build path中。

 

 

2现在开始编写要发布的WebSevice,在src中建包account,建立AccountOper类如下:

 

2.2  发布WebService

 

1)打包要发布的ServiceEclipseNew --> File --> Other --> Axis2 wizards --> Axis2 Services Archiver,按照向导选择刚建立的类编译后的class文件和services.xml文件(选择自动生成)。

 

 

 

 

2)将sunny_service.aar拷贝到Tomcat/webapps/axis2/WEB-INF/services目录下,重新打开http://localhost:8080/axis2/services/listService就会发现AccountService已经发布成功,现在就可以应用这个Web服务了。

 

 

 

 

 

 

 

 

 

 

2.3  测试

 

1)  生成WSDL文件

             

 

 

 

 

 

 

 

 

 

Account.AccountOperclass文件的路径是D/sunny—workspace/AccountService/bin

 

 

 

 

 

 

2)通过WSDL文件生成AccountServiceCallbackHandler.javaAccountServiceStub.java

 

 

 

 

 

 

 

 

                           参数不变

 

 

 

注意下输出的路径

 

3)在工程目录按F5刷新,就可以看到刚生成的文件,但提示都有错误,这是因为包名不一样。解决方法是将生成的两个文件直接移动到account包下

 

 

 

 

 

 

4)编写服务测试程序AccountTest.java如下:

 

package account;

 

public class AccountTest {

    public static void main(String[] args) throws Exception {

       // TODO Auto-generated method stub

       String endpoint = "http://localhost:8080/axis2/services/Sunny";

       AccountOperStub stub = new AccountOperStub(endpoint);

       AccountOperStub.SetAccountID set = new AccountOperStub.SetAccountID();

       set.setId( 2 );

       stub.setAccountID( set );

       AccountOperStub.GetAccountResponse get = stub.getAccount();

       System.out.println( "Current: " + get.get_return() );

      

       AccountOperStub.Deposit dep = new AccountOperStub.Deposit();

       dep.setMoney( 120 );

       AccountOperStub.DepositResponse depRes = stub.deposit( dep );

       System.out.println( "After Deposit 120: " + depRes.get_return());

      

       AccountOperStub.Withdraw draw = new AccountOperStub.Withdraw();

       draw.setMoney( 50 );

       AccountOperStub.WithdrawResponse drawRes = stub.withdraw( draw );

       System.out.println( "After Withdraw 50: " + drawRes.get_return());

      

       AccountOperStub.GetAccountResponse getLast = stub.getAccount();

       System.err.println( "At last: " + getLast.get_return() );

       }

}

   

运行结果如下:

 

测试成功!但是不理想的是有两个警告。

 

三、在局域网其他客户机调用

 

以下介绍在局域网客户端调用上面发布的AccountService。为了不受杀毒软件及防火墙的影响,测试时我们把杀毒软件及防火墙关闭。

1)新建一个web project

2New --> File --> Other --> Axis2 wizards --> Axis2 Code Generator,按下一步

 

 

 

 

 

 

 

 

注意路径是在web project的工程下src子目录中。

 

3)刷新一下项目,就可以看到刚生成的客户端文件了,SunnyStub.javaSunnyCallbackHandler.java,但都有错误,这是生成的包名的问题,改一下:把包名src.account改成account就行了。

 

 

4写测试类

 

package account;

 

public class AccountTest {

    public static void main(String[] args) throws Exception {

       // TODO Auto-generated method stub

       String endpoint = "http://localhost:8080/axis2/services/Sunny";

       SunnyStub stub = new SunnyStub(endpoint);

       SunnyStub.SetAccountID set = new SunnyStub.SetAccountID();

       set.setId( 2 );

       stub.setAccountID( set );

       SunnyStub.GetAccountResponse get = stub.getAccount();

       System.out.println( "Current: " + get.get_return() );

      

       SunnyStub.Deposit dep = new SunnyStub.Deposit();

       dep.setMoney( 120 );

       SunnyStub.DepositResponse depRes = stub.deposit( dep );

       System.out.println( "After Deposit 120: " + depRes.get_return());

      

       SunnyStub.Withdraw draw = new SunnyStub.Withdraw();

       draw.setMoney( 50 );

       SunnyStub.WithdrawResponse drawRes = stub.withdraw( draw );

       System.out.println( "After Withdraw 50: " + drawRes.get_return());

      

       SunnyStub.GetAccountResponse getLast = stub.getAccount();

       System.err.println( "At last: " + getLast.get_return() );

       }

}

 

运行结果:

 

和在本机测试一样,调用成功!(每次运行前要初始化的,重开Tomcat

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值