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

muiu

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

这篇帖子是对《使用Axis发布简单的Web服务》的补充。

可以看出,在Axis里书写deploy.wsdd并利用org.apache.axis.client.AdminClient发布,其主要工作就是把<service>标签中的内容添加在server-config.wsdd里,所以一般直接编辑server- config.wsdd文件会更方便一些。不过当你还没有server-config.wsdd文件时,使用deploy.wsdd的方法会更方便些,因为AdminClient会帮你生成一些额外的xml元素(<handler>等等),而这些元素是必要的。

服务发布以后,就可以在IE浏览器里看到它的WSDL,一般是服务的URL后面加一个“?wsdl”,例如添加图书的WSDL可以通过http://localhost:8080/bookstore/services/BookSvc?wsdl看到。至于Java类是以何种规则映射到WSDL的,请参考JAX-RPC规范;WSDL本身的说明见这里;为了搞清生成的WSDL中各种URL格式的名称空间,最好对XML Schema有所了解,我觉得这篇文章还不错。

我们还可以通过IE浏览器直接调用服务,方法是在服务URL后加“method=xxx”,其中xxx是要调用的方法名称。例如可以通过http://localhost:8080/bookstore/services/BookSvc?method=addBook调用添加图书方法,按照我们的服务类,在Tomcat的控制台上应该可以看到打出了“Book has been added.”的字样。

因为添加图书方法的参数是一个自定义类型,所以在IE里调用时不能指定参数值(或者是可以以其他格式指定,但我还不知道);如果参数是简单类型,就可以指定了。例如我们可以为BookSvc增加一个echo()方法,参数是一个java.lang.String类型的值,如下所示,然后重新编译并启动Tomcat(server-config.wsdd文件不必更改)。
public void echo(String str){
    System.out.println("Hello "+str);
}

在IE里输入http://localhost:8080/bookstore/services/BookSvc?method=echo&str=Mike,就会看到Tomcat的控制台里打出了“Hello Mike”。如果有多个参数,只要把这些参数都列在URL里即可。

相关链接:

    * 使用Axis发布简单的Web服务
[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描述。

相关链接:
分享到:
评论

相关推荐

    【中国房地产业协会-2024研报】2024年第三季度房地产开发企业信用状况报告.pdf

    行业研究报告、行业调查报告、研报

    【中国银行-2024研报】美国大选结果对我国芯片产业发展的影响和应对建议.pdf

    行业研究报告、行业调查报告、研报

    RM1135开卡工具B17A

    RM1135开卡工具B17A

    毕业设计&课设_宿舍管理系统:计算机毕业设计项目.zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。

    毕业设计&课设_画手交易管理系统:Java 毕设项目.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    跑腿平台系统 微信小程序+SSM毕业设计 源码+数据库+论文+启动教程.zip

    跑腿平台系统 微信小程序+SSM毕业设计 源码+数据库+论文+启动教程 项目启动教程:https://www.bilibili.com/video/BV1BfB2YYEnS

    Visual Studio 2013 Shell

    Visual Studio 2013 Shell 下载,处理EsriAddin模板ValidateAddInXMLTask任务意外失败

    【UBS-2024研报】US Equity Strategy _Earnings Brief 3Q24 November.pdf

    行业研究报告、行业调查报告、研报

    Mentor Graphics ModelSim SE 2020.4 x64安装包

    Mentor Graphics ModelSim SE 2020.4 x64安装包,包含Crack

    毕业设计&课设_智慧社区管理系统:Java 毕设项目.zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。

    【毕马威-2024研报】2024中国第七届领先汽车科技50榜单.pdf

    行业研究报告、行业调查报告、研报

    使用 yolo v3 检测物体的方向.zip

    使用 yolo v3 检测物体的方向适用于 Windows 和 Linux 的 Yolo-v3 和 Yolo-v2(用于物体检测的神经网络)如何使用如何在 Linux 上编译如何在 Windows 上编译如何训练(Pascal VOC 数据)如何训练(检测你的自定义对象)我什么时候应该停止训练如何在 PascalVOC 2007 上计算 mAP如何改进物体检测如何标记对象的边界框并创建注释文件使用 Yolo9000如何使用 Yolo 作为 DLL mAP(AP50)https://pjreddie.com/media/files/papers/YOLOv3.pdfYolo v3 在 MS COCO 上的 RetinaNet 源图表取自表 1 (e)https://arxiv.org/pdf/1708.02002.pdfPascal VOC 2007 上的 Yolo v2https://hsto.org/files/a24/21e/068/a2421e0689fb43f08584de9d44c2215f.jpgPascal VOC 2012 上的

    【世界银行-2024研报】护理热潮:通过沙特阿拉伯的技术和职业教育解决护理问题(英).pdf

    行业研究报告、行业调查报告、研报

    【世界银行-2024研报】塞内加尔减少土地保有权中性别不平等的工具、机制和举措目录(英).pdf

    行业研究报告、行业调查报告、研报

    手机商城系统 微信小程序+SSM毕业设计 源码+数据库+论文+启动教程.zip

    手机商城系统 微信小程序+SSM毕业设计 源码+数据库+论文+启动教程 项目启动教程:https://www.bilibili.com/video/BV1BfB2YYEnS

    使用Java开发的一个经典小游戏“俄罗斯方块”.zip

    使用Java开发的一个经典小游戏“俄罗斯方块”.zip开发

    目标检测darknet项目

    darknet是一个较为轻型的完全基于C与CUDA的开源深度学习框架,其主要特点就是容易安装,没有任何依赖项(OpenCV都可以不用),移植性非常好,支持CPU与GPU两种计算方式。上面分享的是对应的darknet项目,解压缩即可以使用。

    基于YOLOX的音频事件检测模型.zip

    基于YOLOX的音频事件检测模型介绍YOLOX_AUDIO 是一个基于 YOLOX(YOLO 的无锚版本)的音频事件检测模型。此 repo 由 PyTorch 实现。YOLOX_AUDIO 的主要目标是使用图像对象检测框架检测和分类多频谱域中的预定义音频事件。更新!!【2021/11/15】 我们正式上线YOLOX_AUDIO快速入门安装数据准备训练推理参考PyTorch 实现的 YOLOX 基线YOLOX @article{yolox2021, title={YOLOX: Exceeding YOLO Series in 2021}, author={Ge, Zheng and Liu, Songtao and Wang, Feng and Li, Zeming and Sun, Jian}, journal={arXiv preprint arXiv:2107.08430}, year={2021}}用于音频特征提取的LibrosalibrosaMcFee, Brian, Colin Raffel, Dawen Liang,

    本项目基于yolov5的GUI目标识别程序,支持选择要使用的权重文件,设置是否使用GPU、设置信度阈值等参数 .zip

    簡述本项目基于yolov5的GUI目标识别程序,支持选择要使用的权重文件,设置是否使用GPU、设置信度阈值等参数。注该Demo为早期版本录制的动画,与新版本存在部分差异!的Python 3.8安装和使用注意该程序由我个人开发,存在bug在所难免,但程序迭代了多个版本并一直在优化,因此强烈建议使用最新版本代码!安装依赖pip install -r requirements.txt所有依赖安装成功后,程序即可正常运行!初次使用需要对软件进行简单的配置,还有必要的配置目标识别模型文件,模型文件可以从网络上下载,或者自己训练生成。这里为了简单说明本程序的使用方式,使用yolov5官方仓库提供的模型文件介绍,yolov5的每个release都附带了训练好的模型文件可以对常见物体进行目标识别,请自行下载备用!yolov5官方模型文件下载https://github.com/ultralytics/yolov5/releases模型文件准备好后,运行程序并点击主界面设置按钮,在弹出的设置对话框中配置权重配置项,即模型文件的路径,然后点击确定按钮保存设置,程

    YOLOC 是将不同的模块组合起来构建不同的物体检测模型,包括 YOLOv3、YOLOv4、Scaled-YOLOv4、YOLOv5、YOLOv6、YOLOv7、YOLOX、YOLOR、PPY.zip

    YOLOC 是将不同的模块组合起来构建不同的物体检测模型,包括 YOLOv3、YOLOv4、Scaled_YOLOv4、YOLOv5、YOLOv6、YOLOv7、YOLOX、YOLOR、PPYOLO、PPYOLOEYOLOC介绍 YOLOC正在组合不同的模块来构建不同的对象检测模型。结合一些模块和技巧来改进YOLO检测模型,使用不同数据集的效果不一致。需要通过具体的实验进行尝试和验证YOLOC中的支持的模块有主流 YOLOv3 模型网络结构主流YOLOv4模型网络结构主流 Scaled_YOLOv4 模型网络结构主流YOLOv5模型网络结构主流 YOLOv6 模型网络结构主流 YOLOv7 模型网络结构主流 YOLOX 模型网络结构主流 YOLOR 模型网络结构 PicoDet模型网络结构变压器架构的主干、颈部、头部改进了变压器系列的骨干、颈部、头部注意系列的脊椎、颈部、头部基于anchor-free和anchor-based的检测器FPN、PANet、BiFPN等结构CIoU、DIoU、GIoU、EIoU、S

Global site tag (gtag.js) - Google Analytics