`
xy_z487
  • 浏览: 278459 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

dfdf

阅读更多
[WS]使用Axis发布简单的Web服务

使用Axis,要发布一个Web服务非常简单,简直不能再简单了,尽管看起来过程和相关代码有些长。我这个帖子里用到了这些软件:Axis 1.1、Eclipse 2.1和Eclipse的Tomcat插件2.2(Sysdeo Tomcat plugin)。发布的方法如下:

我要发布的服务是一个图书商店,公布的方法有添加图书addBook、列表图书listBooks、删除图书deleteBook等等,为简单起见这里就只发布一个添加图书方法,因为其他方法的发布是类似的。

1、首先在Eclipse里新建一个名为bookstore的Tomcat工程,注意要安装了前面说的Tomcat插件才有这个选项的。如果没有安装可以建立一个java工程,然后手动建立必要的目录结构(WEB-INF等),并在Tomcat的server.xml里手动增加与项目对应的<context>项。

2、接下来建立图书类(com.bookstore.model.Book),图书有名称、ISDN号和页数三个属性,这是一个Bean类,代码如下:
package com.bookstore.model;

public class Book {
    private String name;
    private String ISDN;
    private int page;

    public String getISDN() {
        return ISDN;
    }

    public String getName() {
        return name;
    }

    public int getPage() {
        return page;
    }

    public void setISDN(String string) {
        ISDN = string;
    }

    public void setName(String string) {
        name = string;
    }

    public void setPage(int i) {
        page = i;
    }

}

3、接下来建立用来提供服务的类(com.bookstore.BookSvc),这个类就是实际的功能类了,它里面只有一个public的addBook()方法,而它的参数只有一个就是要添加的图书。代码如下:
package com.bookstore;

import com.bookstore.model.Book;

public class BookSvc {
   
    public void addBook(Book book){
        //here you save a book into database
        System.out.println("Book has been added.");
    }
}

4、现在,把下载来的Axis解压缩到一个文件夹,这里假设你解到C:\axis-1_1。把C:\axis-1_1\webapps\axis \WEB-INF\lib目录下的所有.jar文件复制到你的这个web应用程序的WEB-INF\lib下,再把C:\axis-1_1 \webapps\axis\WEB-INF目录下的web.xml复制到你的web应用程序的WEB-INF下。这个步骤相当于在你的web应用程序中配置了Axis。

5、为了让Axis知道你要发布哪些服务,你得在WEB-INF下建立一个名为server-config.wsdd的文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
  <parameter name="adminPassword" value="admin"/>
  <parameter name="attachments.Directory" value="C:\eclipse\workspace\bookstore\WEB-INF\attachments"/>
  <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
  <parameter name="sendXsiTypes" value="true"/>
  <parameter name="sendMultiRefs" value="true"/>
  <parameter name="sendXMLDeclaration" value="true"/>
  <parameter name="axis.sendMinimizedElements" value="true"/>
  <requestFlow>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="session"/>
   </handler>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="request"/>
    <parameter name="extension" value=".jwr"/>
   </handler>
  </requestFlow>
</globalConfiguration>
<handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
<handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
<service name="Version" provider="java:RPC">
  <parameter name="allowedMethods" value="getVersion"/>
  <parameter name="className" value="org.apache.axis.Version"/>
</service>
<service name="BookSvc" provider="java:RPC">
  <parameter name="allowedMethods" value="*"/>
  <parameter name="className" value="com.bookstore.BookSvc"/>
</service>
<service name="AdminService" provider="java:MSG">
  <parameter name="allowedMethods" value="AdminService"/>
  <parameter name="enableRemoteAdmin" value="false"/>
  <parameter name="className" value="org.apache.axis.utils.Admin"/>
  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
</service>
<transport name="local">
  <responseFlow>
   <handler type="LocalResponder"/>
  </responseFlow>
</transport>
<transport name="http">
  <requestFlow>
   <handler type="URLMapper"/>
   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
  </requestFlow>
</transport>
</deployment>

这个文件里发布了三个服务:Version、AdminService和我们的BookSvc。还有一个方法可以生成这个文件,好象Axis推荐使用这种生成的方法,就是在同样目录下写一个deploy.wsdd文件(如果不想看可以直接跳到下一步),内容如下:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="BookSvc" provider="java:RPC">
  <parameter name="className" value="com.bookstore.BookSvc"/>
  <parameter name="allowedMethods" value="*"/>
</service>
</deployment>

也就是说deploy.wsdd里只包含关于我们的服务的描述,确认Tomcat已经启动,然后在同一目录下用下面这个命令生成server-config.wsdd文件:
java org.apache.axis.client.AdminClient -lhttp://localhost:8080/bookstore/services/AdminService deploy.wsdd

其中bookstore是我这个web应用程序的虚拟路径。

6、重新启动Tomcat,访问路径http://localhost:8080/bookstore/services,就可以看到现在发布了三个Web服务,如下图。点击每个服务后的wsdl链接可以看到对应的WSDL描述。

相关链接:
分享到:
评论

相关推荐

    ??????1.zip_DFDF_Really

    1.zip_DFDF_Really" 提供的信息看似是某种技术主题的压缩文件,但具体的主题并未明确。然而,从标签"dfdf really"中,我们可以推测这可能是一个强调某些内容确实很重要的文件集合。 【描述】"THIS IS GOOD REALLY ...

    9b6dfdf7-8350-460b-94c7-65615b880a6e.rar

    9b6dfdf7-8350-460b-94c7-65615b880a6e.rar

    html模版dfdf

    "html模版dfdf"可能是一个特定的HTML模板项目,用于创建销售相关的网页。"销售的绝对经典"这个描述暗示了这个模板设计独特且在商业应用中效果显著,可能包含了一些有助于提高转化率的元素和布局。 HTML(HyperText ...

    MYSQL中文文档fdf dfdf

    MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)进行数据操作。MySQL因其高效、稳定和易于管理的特点,在Web应用程序开发中扮演着至关重要的角色。这款数据库系统由瑞典的...

    基于MSP430和USB的数据采集系统DFDF

    ### 基于MSP430和USB的数据采集系统关键技术点分析 #### 一、MSP430单片机及其特点 MSP430系列单片机是由美国德州仪器(TI)公司推出的新一代16位单片机。它以其强大的处理能力、快速的运行速度、丰富的内置资源及...

    dfdfdfdfdfdfdfd

    科技发展是 所得税所得税颠三倒四所得税的

    c大程设计---对打游戏

    【标签】"dfdf"可能是标签输入错误,我们无法直接从中获取相关知识点,但可以推测这可能是指代游戏的某种特性或功能,比如“动态战斗”或“防御与反击”。 【压缩包子文件的文件名称列表】中的文件名揭示了游戏的...

    USBTest008_C++_ownerukb_

    描述中的 "C++ FOR USE USING FOR GET DFDF" 虽然语法不清晰,但可以推测其核心是讨论如何在 C++ 中操作或获取数据(可能是DFDF格式的数据)。 在这个项目的上下文中,我们可以深入探讨以下几个关键知识点: 1. **...

    -通过T-对偶约束纠正DBI动作

    已知在DBI动作的标准T对偶变换下,由DBI动作给定的D $... 使用这个思想,最多可以使用两个参数,我们发现DFDF和ΩΩ的所有81个协变量耦合分别为0、2、4和6个F。 T对偶约束固定的四个轨距场耦合与文献中已知的耦合一致。

    汉字转拼音程序.rar

    此外,项目文件(dfdf.vcproj)和用户配置(dfdf.vcproj.18AA261733AA4E7.Administrator.user)揭示了其使用Visual Studio作为开发环境。这个程序的实现和设计很可能具有高级性和复杂性,考虑到它被描述为“非常实用”和...

    BIN_assembly_

    在这个场景中,"asm university labsd dfdf"的描述可能是指一个大学的实验课程或项目,其中"dfdf"可能是由于输入错误或无关信息,我们可以忽略不计。 汇编语言与二进制文件有着密切关系,因为汇编语言的源代码会被...

    libchart_6mx90t_LIBCHArT_

    - 0c9938f14bd21e2b3fa610ed7c6384a3.txt、966c9e7f6144773f5db5d7ff59146904.txt、59dfdf72320060d8054a368dcabb6f57.txt:这些可能是项目中的文本文件,可能包含了代码片段、配置信息或者日志记录。 - libchart:...

    html页面通过ActiveX控件调用摄像头实现拍照上传demo代码下载

    object classid="clsid:1122dfdf-5fds6-4fds-8fds2-947fdsfdsfds8" 2 3 id="Camer" codebase="http://127.0.0.1:8080/imagesUpload/demo.cab#version=1,0,0,8" width="500px" height="400px"&gt; 4 5 &lt;/...

    天津理工大学算法分析作业(没有最后的一题动态规划)

    文档“算法分析.docx”可能包含了这些主题的具体题目和解答,而图片“b95b353a1d3d7816535e438c8cab45f.jpg”和“b33e44f06400e0a8d35dfdf52d640e1.jpg”可能是用于辅助理解的示例或图表。通过分析这些材料,学生...

    2010东三省数学建模B题材料

    【描述】提到的内容看似是随意的字符组合,"大家看看我也不zhidao sad jflksdj lkfs dfdf",这可能是一段无意义的填充文字或者打字错误,没有提供具体的知识点信息,因此我们无法从中获取有价值的数学建模信息。...

    在eclipse中配置水晶报表插件

    例如,可以下载`b0f67412-9ac0-2b10-5982-dfdf6376cd99`这个UUID对应的插件包。 - 下载完成后,得到一个压缩文件,该文件包含了水晶报表插件的所有必要组件。 #### 三、安装水晶报表插件 1. **解压缩插件包**: -...

    afd_message

    从描述中的“good resource_dfdsfdsf_dfasf dfdf dfdfadfasfsdfasfsdf”来看,这似乎是一个评价或者描述资源的信息,但因为字符串中的大部分内容是无意义的字符,我们无法直接获取具体的知识点。不过,我们可以尝试...

    actionscrpt笔记

    - 创建对象:使用 `{}` 来定义对象,并通过键值对来初始化属性,如 `varaa:Object={avc:100,abc:"dfdf"};`。 - 遍历对象属性:使用 `for...in` 循环来遍历对象的所有可枚举属性,如: ```actionscript for(iinaa...

    Ubuntu 大全 便于学习Ubuntu

    - **`#dfdf`**:显示文件系统的磁盘空间使用情况。 - `#dfdf-`:显示所有分区的磁盘空间使用情况。 - **`#dudu`**:报告文件或目录的磁盘使用情况。 - `#dudu-b/home`:以块为单位报告/home目录的磁盘使用情况。 -...

    TestStand ATML Toolkit 2017.zip

    (SHA256) cd29d4dfbb9783e72d19780b4ba715b858d6f6a3b233dc1e8d8706bc8dfdf2ef HIL and Real-Time Test Software Suite 2018年秋季 (MD5) 64BAE665E1F080CF111ED65853A1574E (MD5?) 5c04875c51ac82f16044b9e76f7e26...

Global site tag (gtag.js) - Google Analytics