`

用POJO实现0配置的WebService及问题1

阅读更多
编写和发布WebService

  对于用Java实现的服务程序给人的印象就是需要进行大量的配置,不过这一点在Axis2中将被终结。在Axis2中不需要进行任何的配置,就可以直接将一个简单的POJO发布成WebService。其中POJO中所有的public方法将被发布成WebService方法。

下面我们来实现一个简单的POJO,代码如下:

public class SimpleService
{
    public String getGreeting(String name)
    {
        return "你好 " + name;
    }    
    public int getPrice()
    {
        return new java.util.Random().nextInt(1000);
    }    
}



    在SimpleService类中有两个方法,由于这两个方法都是public方法,因此,它们都将作为WebService方法被发布。

    编译SimpleService类后,将SimpleService.class文件放到<Tomcat安装目录>\webapps\axis2\WEB-INF\pojo目录中(如果没有pojo目录,则建立该目录)。现在我们已经成功将SimpleService类发布成了WebService。在浏览器地址栏中输入如下的URL:http://localhost:8080/axis2/services/listServices


这时当前页面将显示所有在Axis2中发布的WebService,如图2所示。



在浏览器地址栏中输入如下的两个URL来分别测试getGreeting和getPrice方法:
http://localhost:8080/axis2/services/SimpleService/getGreeting?name=bill

http://localhost:8080/axis2/services/SimpleService/getPrice

图3和图4分别显示了getGreeting和getPrice方法的测试结果。




引用
问题:在浏览器中测试 无论传入什么参数总是出现
- <ns:getGreetingResponse xmlns:ns="http://ws.apache.org/axis2">
  <return>你好 null</return> 
  </ns:getGreetingResponse>

但getPrice方法正确!

答:原因是wsdl自动生成后,参数是
<xs:element minOccurs="0" name="param0" nillable="true" type="xs:string"/>
名字变成了param0,所以要变成http://localhost:8080/axis2/services/SimpleService/getGreeting?param0=bill


在编写、发布和测试0配置的WebService时应注意如下几点:

1、POJO类不能使用package关键字声明包。

2、Axis2在默认情况下可以热发布WebService,也就是说,将WebService的.class文件复制到pojo目录中时,Tomcat不需要重新启动就可以自动发布WebService。如果想取消Axis2的热发布功能,可以打开<Tomcat安装目录>\webapps\axis2\WEB-INF\conf\axis2.xml,找到如下的配置代码:
<parameter name="hotdeployment">true</parameter>

将true改为false即可。要注意的是,Axis2在默认情况下虽然是热发布,但并不是热更新,也就是说,一旦成功发布了WebService,再想更新该WebService,就必须重启Tomcat。这对于开发人员调试WebService非常不方便,因此,在开发WebService时,可以将Axis2设为热更新。在axis2.xml文件中找到
<parameter name="hotupdate">false</parameter>
,将false改为true即可。

3、在浏览器中测试WebService时,如果WebService方法有参数,需要使用URL的请求参数来指定该WebService方法参数的值,请求参数名与方法参数名要一致,例如,要测试getGreeting方法,请求参数名应为name,如上面的URL所示。

4、发布WebService的pojo目录只是默认的,如果读者想在其他的目录发布WebService,可以打开axis2.xml文件,并在<axisconfig>元素中添加如下的子元素:
<deployer extension=".class" directory="my" class="org.apache.axis2.deployment.POJODeployer"/>


    上面的配置允许在<Tomcat安装目录>\webapps\axis2\WEB-INF\my目录中发布WebService。例如,将本例中的SimpleService.class复制到my目录中也可以成功发布(但要删除pojo目录中的SimpleService.class,否则WebService会重名)。


分享到:
评论

相关推荐

    webservice1 pojo实现0配置

    总结:本篇内容介绍了如何使用Axis2 1.4.1版本创建和发布零配置的Web服务,通过简单的Java POJO对象,不需任何XML配置文件,就可以快速构建和测试Web服务。这种简洁的方法大大简化了Web服务的开发流程,提高了开发...

    用WebService传递POJO和对象数组的例子.doc

    本文将详细讨论如何在AXIS2中通过POJO发布Web服务,以及解决在使用AXIS2 Eclipse插件打包发布时遇到的“Weather didn't initialize”问题。 首先,我们需要了解什么是POJO。POJO是指没有特定框架约束的普通Java对象...

    Axis2创建webservice服务的方式之POJO方式

    Axis2是Apache软件基金会开发的一个高效且灵活的Web服务引擎,它允许开发者用多种方式来创建Web服务,其中一种就是通过POJO(Plain Old Java Object)方式。这篇博文主要探讨了如何使用Axis2通过POJO方式构建Web服务...

    WebService大讲堂之Axis2

    **1、用 POJO 实现 0 配置的 WebService** 在 Axis2 中,你可以直接使用 POJO(Plain Old Java Object)来定义 WebService,无需编写额外的配置文件。POJO 中的每个公共方法都会自动映射为 WebService 接口。以下是...

    Java WebService大讲堂(1-10集,完整版)

    1. "用POJO实现0配置的WebService":这一集介绍了如何使用普通的Java对象(POJO)快速创建Web服务,无需复杂的配置文件,大大简化了开发流程。 2. "复合类型数据的传递":这里讲解了如何处理复杂的数据结构,例如...

    Axis2(WebService)经典教程

    POJO实现0配置的WebService - **概念**:通过简单的Java类(POJO)来实现WebService,无需额外的配置文件。 - **步骤**: - 下载Axis2最新版本(如1.4.1),包含必要的JAR文件。 - 创建一个简单的Java类,定义...

    李宁webservice讲解

    2. **POJO实现0配置的WebService:** POJO(Plain Old Java Object)是指没有特定框架约束的简单Java对象。在Axis2中,可以使用POJO直接作为服务接口,无需额外的配置,简化了开发流程。 3. **复合类型数据的传递:*...

    WebService教程

    1. **POJO实现0配置的WebService**:使用Plain Old Java Object(POJO)直接创建服务,无需复杂的配置文件,简化了开发流程。 2. **复合类型数据的传递**:讲解如何在WebService中传输结构复杂的对象,包括数组、...

    webService配置

    以下是配置和使用Axis2实现WebService的基本步骤: 1. **下载和部署Axis2**: - 从官方网站下载Axis2的zip包,解压缩。 - 将`axis2.war`文件复制到Tomcat服务器的`webapps`目录下。 - 启动Tomcat服务器,访问`...

    java写webservice例子

    ### Java编写WebService及调用示例 #### 一、引言 随着互联网技术的发展,服务化成为软件架构的重要组成部分之一。WebService作为一种实现不同系统间通信的技术手段,被广泛应用于企业级应用开发中。本文将详细介绍...

    axis2建webservice文档

    在描述中,“WebService大讲堂之Axis2(1):用POJO实现0配置的WebService”表明该文档系列首先介绍了如何使用Plain Old Java Objects (POJOs)来创建无配置的Web服务。POJO是一种简单的Java类,没有特定的框架约束,...

    webservice大讲堂系列教程

    1. **WebService大讲堂之Axis2(1):用POJO实现0配置的WebService** 在这一章节中,讲解了如何使用Plain Old Java Object (POJO) 来创建Web服务,无需复杂的配置文件,大大简化了开发过程。POJO使得代码更易于理解...

    WebService

    本篇文章主要介绍如何使用 MyEclipse 5.1 GA 和 XFire 在 Java 平台上实现 WebService。 #### 二、开发环境 开发环境包括以下组件: - **Sun Java 5**:提供 Java 开发所需的核心支持。 - **Eclipse 3.2**:作为 ...

    axis2使用方法-java+webservice

    下面主要介绍使用 Axis2 开发一个不需要任何配置文件的 WebService,并在客户端使用 Java 和 C# 调用这个 WebService。 Axis2 下载和安装 Axis2 的下载和安装可以从 Apache 官方网站下载最新版本的 Axis2,下载...

    WebService之Axis2经典教程

    #### 四、使用POJO实现0配置的WebService **4.1 实现步骤** 1. **创建POJO类**: 定义一个简单的POJO类,包含业务逻辑方法。 2. **部署服务**: 在`axis2.xml`中配置服务,或者使用更简单的方式——无需任何配置文件...

    WebService之Axis2教程

    #### 五、用POJO实现0配置的WebService - **概念**:使用纯Java POJO实现无需额外配置文件的WebService。 - **步骤**: - 创建一个简单的POJO类,包含所需的服务方法。 - 使用Axis2提供的注解或API定义该POJO为...

    WebService大讲堂之Axis2.pdf

    使用 POJO 实现 0 配置的 WebService - **概念**: 在 Axis2 中可以通过简单的 POJO 类直接发布 WebService,无需复杂的配置文件。 - **示例**: - **POJO 类**: `SimpleService` ```java public class ...

    webService接口

    ##### 使用POJO实现0配置的WebService 以Axis2为例,创建一个不需要任何配置的WebService,首先需要下载并安装Axis2。下载地址为:[http://ws.apache.org/axis2/](http://ws.apache.org/axis2/),推荐使用最新版本...

    webservice的axis2开发

    4. 在Eclipse中新建项目,编写服务器端的Java代码,通过注解或配置文件声明WebService接口和服务实现。 通过AXIS2,开发者可以轻松地创建和发布WebService,同时AXIS2提供了丰富的功能,如WS-Security、MTOM和SwA等...

    webservice cxf集成servlet

    ### WebService CXF与Servlet集成详解 #### 一、项目准备与搭建 ##### 1. 创建Web Project - **项目命名**:首先,在开发环境中创建一个新的Web项目,并将其命名为`cxf_bigdata`。 ##### 2. 目录结构 - 项目的...

Global site tag (gtag.js) - Google Analytics