`

用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会重名)。


分享到:
评论

相关推荐

    用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服务...

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

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

    李宁webservice讲解

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

    webService配置

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

    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 cxf集成servlet

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

    axis2 webservice基础教程

    - **概念介绍**:在Axis2中,可以通过简单的POJO(Plain Old Java Object)实现WebService的发布,无需复杂的配置文件。 - **示例代码**:以下是一个简单的POJO示例,展示了如何创建一个WebService。 ```java ...

Global site tag (gtag.js) - Google Analytics