• 在Eclipse 中 使用axis2开发第一个webService


    一,开发服务器端

    准备工作

    新建两个Dynamic web project :

    DU72G)6{V}`[YD4QENM{{RO

    其中webserviceService项目为服务器端项目,另一个为客户端项目。

    (另外我修改了eclipse对tomcat的项目发布目录时的重定向,参见我的另一篇blog)

    1, 服务器端 代码(处理服务器端项目)

    借用网络上的Hello例子

    HelloServer文件(右键Java Resources下的src,选择New->Class,填写包名:org.web.service   类名:HelloWordService):

    package org.web.service;
    
    public class HelloWorldService { 
        public String sayHello(String name){ 
            return "Hello," + name; 
        } 
    } 

    (简单吧)

    2, 然后 生成 WSDL文件

    在本项目下面空白处右键-->New—>Other..-->Axis2 Wizards—>Axis2 Service Archiver

    之后每一步看图:

    image

    image

    image

    image

    (这里我们的程序没用其他类库,所以直接下一步)

    image

    image

    image

    之后会在本项目下看到my_service.aar(选择本项目F5刷新)

    image

    然后把my_service.aar 复制到tomcat目录下apache-tomcat-7.0.37\\webapps\axis2\WEB-INF\services\里

    启动tomcat,浏览器访问:http://localhost:8080/axis2/services/HelloWorldService?wsdl

    image

    见到如上界面就成功了。

    二,生成客户端(使用webServiceClient项目)

    1, 右键项目空白处-New—>Other..—>Axis2 Wizards—>Axis2 Code Generator

    image

    之后每一步见下图:

    image

    image

    (这里的地址是之前网络访问成功的地址)

    image

    (这里默认)

    image

    到这里结束,会多次很多类文件:

    image

    但是你会发现你的webServiceClient项目代码很多错误,这是因为没把关联包加进来

    复制 axis2-1.6.2\lib\里所有文件到webServiceClient项目的WebContent\WEB-INF\lib\下。这样错误就没了。

    三,调用webService代码

    在webServiceClient项目里换个包新建类:

    package org.web.client;
    
    import java.rmi.RemoteException; 
    import org.web.service.*;
    
    public class HelloWorldClient {
    
        /** 
         * @param args 
         */ 
        public static void main(String[] args) throws RemoteException{ 
            // TODO Auto-generated method stub 
            String target = "http://localhost:8080/axis2/services/HelloWorldService"; 
            HelloWorldServiceStub stub = new HelloWorldServiceStub(target); 
            // sayHello 为webService提供参数 
            SayHello sayHello = new SayHello(); 
            sayHello.setName("icePine"); 
            SayHelloResponse eur = stub.sayHello(sayHello); 
            String returnVal = eur.get_return(); 
            System.out.println(returnVal); 
             
        }
    
    } 

    运行此代码文件:此文件上右键Run As->Java Application,输出:

    image

    至此,第一个webService完成!

    注:版本不同会有些许差异,我在学习时参考的网上教程很多都走不下去,后来自己总结修改后才成功。

    比如:网络上参考的一个版本SayHello是HelloWorldServiceStub的内部类,而我用的这个版本不是。

    注大家成功。

  • 相关阅读:
    [YTU]_2436( C++ 习题 输出日期时间--友元类)
    [YTU]_2435 ( C++ 习题 输出日期时间--友元函数)
    病毒侵袭
    石子合并(区间DP经典例题)
    AC自动机模板2
    【模板】最近公共祖先(LCA)
    华华给月月出题
    线性筛素数
    华华开始学信息学
    华华和月月种树
  • 原文地址:https://www.cnblogs.com/Jason_Chan/p/3010623.html
Copyright © 2020-2023  润新知