使用Axis发布简单的Web服务

用axis 发布ws的过程 用到的几个工具类的build 博文链接:https://sun-cat.iteye.com/blog/103127 立即下载

使用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描述。

可以看出,在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发布webservices NULL 博文链接:https://jinchun1223.iteye.com/blog/791403 立即下载

相关推荐

大麦网回流票监控实战:如何利用sign参数和cookie实现自动抢票(避坑指南)

本文详细介绍了如何利用sign参数和cookie构建大麦网回流票监控系统,实现自动化抢票。通过分析大麦网票务系统的核心机制、获取关键身份凭证、逆向分析sign签名算法,并构建完整的监控系统,帮助用户高效捕捉回流票机会。文章还提供了实战避坑指南和合法合规的注意事项,确保系统稳定运行且符合平台规则。

weixin_28568819的博客 413

Axis使用指南

一、Axis安装      1. 环境 JDK 6.0 、Tomcat 6.0      2. 到 http://ws.apache.org/Axis/网站下载Axis安装包,我使用的是axis1.4     3. 解压缩安装包,将axis-bin-1_4/axis-1_4/webapps下的axis包拷贝到TOMCAT_HOME/webapps/下 

吻舞双全的专栏 1660

[仿真实战]FDTD Solutions 8.0:从零搭建薄膜光谱分析模型

本文提供了一份基于FDTD Solutions 8.0的薄膜光谱分析模型从零搭建实战指南。通过详细步骤,手把手教你创建玻璃基底与硅薄膜的几何结构、设置仿真区域与边界条件、配置光源与监视器,并最终计算反射率与透射率光谱。内容涵盖参数扫描与优化,旨在帮助用户快速掌握FDTD仿真在纳米光子学与薄膜光学设计中的核心应用。

defi6farmer的博客 502

Unable to find config file. Creating new servlet engine config file: /WEB-INF/server-config.wsdd

错误原因:axis需要读取一个名为server-config.wsdd的配置文件,以初始化其处理SOAP消息的管道参考:http://www.developer.com/java/web/article.php/10935_3443951_1Solution:create the WEB-INF/server-config.wsdd file. The wsdd stands for Web se

zhaoyh82的专栏 5000

WGCNA分析中那些没人告诉你的坑:以肺结核差异基因模块筛选为例

本文深入探讨WGCNA分析在肺结核差异基因模块筛选中的七个关键陷阱,包括soft-thresholding选取、样本离群值检测、模块合并阈值调整等。通过实际案例和R代码示例,揭示生信数据挖掘中常被忽视的技术细节,帮助研究者避免常见错误,提升分析结果的可靠性和生物学意义。

weixin_29218509的博客 261

PS/Ai/PR/AE等adobe出现正版弹窗提示:Your non-genuine Adobe app will be disabled soon解决办法

就是用专门的清理工具下载,清理工具在文章下方。然后新建三个空的记事本文件,重命名为 Adobe Genuine Launcher.exe,AdobeGCClient.exe,AGMService.exe。在该文件目录中,分别找到 Adobe Genuine Launcher.exe,AdobeGCClient.exe,AGMService.exe,然后在防火墙入站规则里,阻止Adobe Genuine Launcher.exe,AdobeGCClient.exe,AGMService.exe。

Q82556499的博客 1万+

WebService核心文件【server-config.wsdd】详解及调用示例

系统程序员成长计划-分离用户界面与内部实现(一)        用户界面就是与用户交互的接口,通常包括输入和输出(显示)两个部分。用户使用键盘等输入设备把数据输入给程序,程序做相应处理后,输出结果到显示器或其它设备上。所谓的内部实现(也称为内部逻辑)就是负责数据处理的这一部分功能,它占的比例最大,其实现也最复杂。 分离用户界面与内部实现有很多好处: 1.用户界面与内部实现

青衫烟雨客的专栏 1万+

Web前端开发技术:实验14-16

实验14 1. 编写JavaScript程序实现“九九乘法口诀”表,如图14-40所示。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>九九乘法表</title> </head> <body> <h1>九九乘法表</h1> </body> <scri

KslgmrDry的博客 1万+

关于用Axis2+Tomcat生成WebService的服务端

因为公司需要用到webservice服务端和客户端之间交互发送文件,所以特使用不同方式(wsimport,Axis+Tomcat,Ecplise的webservice工具生成,CXF)来实现了webservice的服务端和客户端 下面用Axis简单粗暴的方式来生成webservice的服务端 上操作步骤: 一.前提需要准备的一些环境 1. Ecplise 2.Tomcat (需要知道...

醉梦洛的博客 2028

获取iOS设备唯一标识UUID(Swift版)

属性返回的UUID是与应用程序相关联的,也就是说,如果用户卸载并重新安装应用程序,该UUID可能会发生变化。如果您需要一个与设备相关的持久唯一标识符,您可以考虑使用Keychain或其他方法来存储和检索设备标识符。在iOS开发中,我们经常需要获取设备的唯一标识符来进行一些特定的操作,比如设备识别、数据追踪等。在本文中,我将向您展示如何使用Swift编程语言获取iOS设备的唯一标识UUID。通过上述代码,您可以在您的iOS应用程序中轻松获取设备的唯一标识符。属性来获取设备的唯一标识UUID。

BitNetO的博客 1920

Opencv项目实战:20 单手识别数字0到5

今天要做的是单手识别数字0到5,通过在窗口展示,实时的展示相应的图片以及文字。在这里,我提供一下识别更多数字的方法(0-10)。首先最简便的是双手识别,完全不用更改代码,把图片处理好就行了;其次,就是按照最上面的那张图片,参数figureup是一个长度为5的列表[0,0,0,0,0],你可以参照着手势将其打印出来,然后将其用if条件判断。当然,在我们这边最常见的还是华北手势表示数字,大家按照自己的习惯来就行。

m0_62919535的博客 2878

[WS]使用Axis发布简单的Web服务

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

iteye_2807的博客 187

实战|2026美团&大众点评餐饮数据抓取:Playwright/Selenium反爬全攻略

核心结论:2026年美团&大众点评的反爬核心是“多维度风控”,需组合使用“住宅IP+设备指纹伪装+真人行为模拟+动态验证处理”,Playwright是最优工具,Selenium仅作为补充。效率优化:单机爬取速度建议控制在“每小时500-800条”,避免高频请求触发风控;分布式爬取需确保每个节点使用独立住宅IP,且行为轨迹不一致。扩展方向集成WASM解密工具,破解2026年美团的Token加密;用AI识别动态点选验证,提升验证通过率;对接大数据平台,对抓取的餐饮数据进行可视化分析。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2465

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

这篇帖子是对《使用Axis发布简单的Web服务》的补充。 可以看出,在Axis里书写deploy.wsdd并利用org.apache.axis.client.AdminClient发布,其主要工作就是把&lt;service&gt;标签中的内容添加在server-config.wsdd里,所以一般直接编辑server-config.wsdd文件会更方便一些。不过当你还没有server-confi...

weixin_33770878的博客 78

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Webservice学习笔记二,使用Axis发布简单的Web服务

转帖:http://eckellee.blog.hexun.com/3351298_d.html使用Axis,要发布一个Web服务非常简单,简直不能再简单了,尽管看起来过程和相关代码有些长。我这个帖子里用到了这些软件:Axis 1.1、Eclipse 2.1和Eclipse的Tomcat插件2.2(Sysdeo Tomcat plugin)。发布的方法如下:我要发布的服务是一个图书商店,公布的方法有添加图书addBook、列表图书listBooks、删除图书deleteBook等等,为简单起见这里就只发布一

Anvil的专栏 740

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

[转]使用Axis发布简单的Web服务

使用Axis,要发布一个Web服务非常简单,简直不能再简单了,尽管看起来过程和相关代码有些长。我这个帖子里用到了这些软件:Axis 1.1、Eclipse 2.1和Eclipse的Tomcat插件2.2(Sysdeo Tomcat plugin)。发布的方法如下: 我要发布的服务是一个图书商店,公布的方法有添加图书addBook、列表图书listBooks、删除图书deleteBook等等,为简单...

DCTM + SAP 96

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: escape()、encodeURI()、encodeURIComponent()区别详解
下一篇: android开发环境搭建
zxycode007
博客等级 码龄18年 53粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值