`
ningkun
  • 浏览: 18987 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用Axis2快速开发web服务

阅读更多
使用Axis2开发web服务一般有以下三种形式:
1.pojo模式,此方法最为简便,但是也有很多的局限性,最为明显的就是不能有package
   step1:编写pojo对象
             public class HelloWorld{
             public String sayHello(String name){
               return "Hello,"+name;
             }
           }
           编译成class文件。
    step2:在Tomcat目录/webapps/axis2/WEB-INF/下新建pojo文件夹。
    step3:将class文件拷贝到pojo文件夹中。
    setp4:启动tomcat,在浏览器中输入:
            http://localhost:8080/axis2/services/HelloWorld/sayHello? 
            param0="ningkun"将会看到,"Hello,ningkun"的消息。


  2.如果我们想以pojo的形式发布web服务,并且与package的话,可以使用jar包的形式发
  布web服务。

    step1:编写java类
    AddressService类

    package sample;
    import javax.jws.WebService;

    @WebService
     public class AddressService {
public Address getAddress(){
Address address = new Address();
address.setStreet("Street");
address.setNumber("Number 15");
return address;
}
     }

   Address类
     package sample;

    public class Address {
private String street;
private String number;
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}

     }
    
    step2:修改axis2/WEB-INF/conf/axis2.xml
     添加
        <deployer extension=".jar" derectory="pojo" class="org.apache
         .axis2.deployment.POJODeployer"/>
   
    step3:将pojo类打包后放到pojo文件夹下。
    

   3.用Serice文件发布web服务。
       step1:编写java类,此处我们使用1中的HelloWorld类
       step2:编写services.xml
       <service name="HelloService">
<description>
This is a sample Web Service.
</description>
<parameter name="ServiceClass" locked="false">
     HelloWorld
</parameter>
<operation name="sayHello">
<messageReceiver
       class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</operation>
</service>
      注:messageReceiver中的class属性有多种选择,
             RawXMLINOutMessageReceiver 接受参数,并有返回值
             RawXMLINOnlyMessageReceiver 无返回值
    4.打包aar文件
      项目目录如下
          HelloWorld.class
         META-INF
            services.xml
        
       jar cvf HelloService.aar .

       step3:
     
    
分享到:
评论
7 楼 点子二木 2008-11-04  
难道说还有其他形式吗
6 楼 liang1022 2008-10-16  
ningkun 写道
liang1022 写道

setp4:启动tomcat,在浏览器中输入: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://localhost:8080/axis2/services/HelloWorld/sayHello?&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; param0="ningkun"将会看到,"Hello,ningkun"的消息。 ===================================================== 請問 一下, webservice可以從以上介上的方法來進行調用嗎? 我試了Axis2 內建的getVersion怎麼都調不出來呢? 在ie輸入: http://localhost:8080/axis2/services/Version?param0="hi" 回應的是HTTP500 內部伺服錯誤

不是吧,正常情况下是可以得到回应的啊。


我用 .Net WebServiceStudio 2.0 的工具來測試是正常,
但我比較好奇的是, 可以使用原作者 所提的方式,在IE的輸入網址來Resquest
,真的可以嗎??
5 楼 紧急下潜 2008-10-15  
ningkun 写道
紧急下潜 写道

经我研究axis2的pojo这种方式有问题,在生成的soap消息内,会加上一个特殊属性type="类名" 但是在wsdl定义中是找不到这个属性定义的,有的soap解析会出问题的,这不是标准通用的方式

目前尚未发现,有待进一步研究。

axis2有一个SOAPMonitor,你可以配置好用它查看发送的soap消息
本来我也没注意到这个问题,我是在使用tuscany做客户端调用axis2的pojo服务端的时候,出问题了,死循环导致溢出,后来跟踪eclipse的sdo实现发现到这个问题的,因为这个type属性在wsdl和schema中未定义,所以导致循环解析出错
4 楼 ningkun 2008-10-15  
liang1022 写道

setp4:启动tomcat,在浏览器中输入: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://localhost:8080/axis2/services/HelloWorld/sayHello?&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; param0="ningkun"将会看到,"Hello,ningkun"的消息。 ===================================================== 請問 一下, webservice可以從以上介上的方法來進行調用嗎? 我試了Axis2 內建的getVersion怎麼都調不出來呢? 在ie輸入: http://localhost:8080/axis2/services/Version?param0="hi" 回應的是HTTP500 內部伺服錯誤

不是吧,正常情况下是可以得到回应的啊。
3 楼 ningkun 2008-10-15  
紧急下潜 写道

经我研究axis2的pojo这种方式有问题,在生成的soap消息内,会加上一个特殊属性type="类名" 但是在wsdl定义中是找不到这个属性定义的,有的soap解析会出问题的,这不是标准通用的方式

目前尚未发现,有待进一步研究。
2 楼 紧急下潜 2008-10-15  
经我研究axis2的pojo这种方式有问题,在生成的soap消息内,会加上一个特殊属性type="类名"
但是在wsdl定义中是找不到这个属性定义的,有的soap解析会出问题的,这不是标准通用的方式
1 楼 liang1022 2008-10-15  
setp4:启动tomcat,在浏览器中输入:
            http://localhost:8080/axis2/services/HelloWorld/sayHello? 
            param0="ningkun"将会看到,"Hello,ningkun"的消息。
=====================================================
請問 一下, webservice可以從以上介上的方法來進行調用嗎?
我試了Axis2 內建的getVersion怎麼都調不出來呢?
在ie輸入:
http://localhost:8080/axis2/services/Version?param0="hi"
回應的是HTTP500 內部伺服錯誤

相关推荐

    基于Axis2的Web Service 快速开发.ppt

    基于Axis2的Web Service 快速开发.ppt

    Axis2快速构建Web Service ppt

    .Web Service简介 .如何开发一个Web Service .Axis2简介 .Axis2安装与部署 .Web Service开发步骤

    webservice-axis2引擎-快速入门资料

    支持开发 Axis2 的动力是探寻模块化更强、灵活性更高和更有效的体系结构,这种体系结构可以很容易地插入到其他相关 Web 服务标准和协议(如 WS-Security、WS-ReliableMessaging 等)的实现中。 Apache Axis2 是Axis...

    myeclipse快速开发axis2webservice

    本文主要描述如何使用Apache开源项目Axis提供的API来实现Web Services。写得非常的详细,图文并茂。

    基于Axis2和Tomcat的自动化可配置Web Service开发文档,源码和测试工程代码

    基于Axis2和Tomcat的自动化可配置Web Service开发文档,源码和测试工程代码,详细讲述了如何在Tomcat环境下利用Axis2引擎快速开发一个可配置的自动化发布的web service应用。

    WebServices+SSL+Oracle XE+AXIS

    图文资料,教你快速使用AXIS开发WebServices

    axis2 myeclipse插件

    myeclipse下安装axis2插件可以快速开发适合pb程序调用的webservices。亲测没有问题

    axis1.4.1常用

    Web Services是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。 Axis总体上是一个SOAP引擎,但又不仅仅是个引擎,它还是: 1)是一个简单的独立的服务器 2...

    Axis:Axis是经过深思熟虑的前端结构,可让您快速开始每个Web项目

    -- Axis是一个组件驱动的样板,可以扩展为框架。 它努力创建具有精美组织代码的项目,这是通过改编BEM方法并...Axis具有各种预构建组件,可以更快地进行开发。 您可以选择所需的元素,以便仅获得实际使用的元素。 文件

    Web Service框架xfire与spring集成开发流程

    XFire 是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用。 相对于Axis来说,目前XFire相对受欢迎,加上其提供了和Spring集成的支持,在...

    spring-ws-reference-1.5.9

    本书详细描述了怎样使用spring-ws构造web service应用,这个framework是可以和CXF和AXIS媲美的web service开发框架,简单易配置,可实现web service的快速开发。

    java开源包2

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包8

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包1

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包11

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包3

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包6

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包5

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

Global site tag (gtag.js) - Google Analytics