- 浏览: 278459 次
- 性别:
- 来自: 北京
最新评论
-
caoxiaoj2ee:
:cry:
java 基础学习 -
shuiguozheng:
这么好的文章,被我发现额。谢谢
Tomcat集群与负载均衡区别以及特性 -
liwenjie:
接口中所有变量都必须被定义为final static?
sta ...
java 基础学习 -
javamonkey:
无论何种O,都没有考虑到展示的问题。
VO , PO , BO , QO, DAO ,POJO -
sdscx0530:
不错 谢谢
巧用Google Code备份代码
[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描述。
相关链接:
使用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描述。
相关链接:
发表评论
-
三大WEB服务器对比分析(apache ,lighttpd,nginx)
2012-11-07 14:42 1065一.软件介绍(apache lighttpd ngin ... -
apache+tomcat+jk1.2.18+lighttpd squid
2012-11-07 14:29 1073我这里主要是用lighttpd ... -
Oracle数据库 基础 创建数据库(手工脚本)
2012-11-02 17:10 971一、概念 一个Oracle数据库,最基本的构成(逻辑) ... -
apache tomcat 集群 分组
2012-11-01 03:09 1063对tomcat cluster集群配置中session复 ... -
MyEclipse 注册机 注册码 可用
2012-10-08 09:31 3import java.io.BufferedReade ... -
详解ORACLE数据库的分区表
2012-09-28 15:22 858引用:http://space.itpub ... -
web.xml文件中配置<mime-mapping>下载文件类型
2012-06-26 15:56 983TOMCAT在默认情况下下载.rar的文件是把文件当作t ... -
测试附件下载
2012-06-14 15:54 888测试 -
struts中#、%和$这三个符号的使用方法
2012-05-12 18:04 950转自:http://blog.sina.com.c ... -
node.js是什么,解决什么问题
2012-03-05 10:19 1172http://www.ibm.com/developerwor ... -
Java URLConnection 总结
2012-02-27 09:32 1117Java URLConnection 总 ... -
GA,RC,Beta,Release,Trial,Standard......等软件版本具体代表什么意思
2012-02-24 14:42 2164GA,RC,Beta,Release,Trial,Sta ... -
1.一天一点学习Linux
2011-07-04 16:13 928http://www.opsers.org/base/lear ... -
spring 参考手册
2011-07-04 14:44 923http://ajava.org/online/spring2 ... -
linux base
2011-07-01 10:50 595http://www.yesky.com/SoftChanne ... -
linux 软件通用安装
2011-07-01 10:14 719http://www.yesky.com/SoftChanne ... -
Java IO 的一般使用原则
2011-06-30 13:32 844Java IO 的一般使用原则: 一、按数据来源(去向) ... -
linux 重启服务 awk命令 kill系统服务
2011-06-29 14:56 1497[root@java-dev05 script]# more ... -
jquery + css
2011-06-28 12:40 821http://sd.csdn.net/a/20110620/3 ... -
java内存泄露
2011-06-21 17:29 857http://tech.it168.com/j/n/2007- ...
相关推荐
1.zip_DFDF_Really" 提供的信息看似是某种技术主题的压缩文件,但具体的主题并未明确。然而,从标签"dfdf really"中,我们可以推测这可能是一个强调某些内容确实很重要的文件集合。 【描述】"THIS IS GOOD REALLY ...
9b6dfdf7-8350-460b-94c7-65615b880a6e.rar
"html模版dfdf"可能是一个特定的HTML模板项目,用于创建销售相关的网页。"销售的绝对经典"这个描述暗示了这个模板设计独特且在商业应用中效果显著,可能包含了一些有助于提高转化率的元素和布局。 HTML(HyperText ...
MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)进行数据操作。MySQL因其高效、稳定和易于管理的特点,在Web应用程序开发中扮演着至关重要的角色。这款数据库系统由瑞典的...
### 基于MSP430和USB的数据采集系统关键技术点分析 #### 一、MSP430单片机及其特点 MSP430系列单片机是由美国德州仪器(TI)公司推出的新一代16位单片机。它以其强大的处理能力、快速的运行速度、丰富的内置资源及...
科技发展是 所得税所得税颠三倒四所得税的
【标签】"dfdf"可能是标签输入错误,我们无法直接从中获取相关知识点,但可以推测这可能是指代游戏的某种特性或功能,比如“动态战斗”或“防御与反击”。 【压缩包子文件的文件名称列表】中的文件名揭示了游戏的...
描述中的 "C++ FOR USE USING FOR GET DFDF" 虽然语法不清晰,但可以推测其核心是讨论如何在 C++ 中操作或获取数据(可能是DFDF格式的数据)。 在这个项目的上下文中,我们可以深入探讨以下几个关键知识点: 1. **...
已知在DBI动作的标准T对偶变换下,由DBI动作给定的D $... 使用这个思想,最多可以使用两个参数,我们发现DFDF和ΩΩ的所有81个协变量耦合分别为0、2、4和6个F。 T对偶约束固定的四个轨距场耦合与文献中已知的耦合一致。
此外,项目文件(dfdf.vcproj)和用户配置(dfdf.vcproj.18AA261733AA4E7.Administrator.user)揭示了其使用Visual Studio作为开发环境。这个程序的实现和设计很可能具有高级性和复杂性,考虑到它被描述为“非常实用”和...
在这个场景中,"asm university labsd dfdf"的描述可能是指一个大学的实验课程或项目,其中"dfdf"可能是由于输入错误或无关信息,我们可以忽略不计。 汇编语言与二进制文件有着密切关系,因为汇编语言的源代码会被...
- 0c9938f14bd21e2b3fa610ed7c6384a3.txt、966c9e7f6144773f5db5d7ff59146904.txt、59dfdf72320060d8054a368dcabb6f57.txt:这些可能是项目中的文本文件,可能包含了代码片段、配置信息或者日志记录。 - libchart:...
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"> 4 5 </...
文档“算法分析.docx”可能包含了这些主题的具体题目和解答,而图片“b95b353a1d3d7816535e438c8cab45f.jpg”和“b33e44f06400e0a8d35dfdf52d640e1.jpg”可能是用于辅助理解的示例或图表。通过分析这些材料,学生...
【描述】提到的内容看似是随意的字符组合,"大家看看我也不zhidao sad jflksdj lkfs dfdf",这可能是一段无意义的填充文字或者打字错误,没有提供具体的知识点信息,因此我们无法从中获取有价值的数学建模信息。...
例如,可以下载`b0f67412-9ac0-2b10-5982-dfdf6376cd99`这个UUID对应的插件包。 - 下载完成后,得到一个压缩文件,该文件包含了水晶报表插件的所有必要组件。 #### 三、安装水晶报表插件 1. **解压缩插件包**: -...
从描述中的“good resource_dfdsfdsf_dfasf dfdf dfdfadfasfsdfasfsdf”来看,这似乎是一个评价或者描述资源的信息,但因为字符串中的大部分内容是无意义的字符,我们无法直接获取具体的知识点。不过,我们可以尝试...
- 创建对象:使用 `{}` 来定义对象,并通过键值对来初始化属性,如 `varaa:Object={avc:100,abc:"dfdf"};`。 - 遍历对象属性:使用 `for...in` 循环来遍历对象的所有可枚举属性,如: ```actionscript for(iinaa...
- **`#dfdf`**:显示文件系统的磁盘空间使用情况。 - `#dfdf-`:显示所有分区的磁盘空间使用情况。 - **`#dudu`**:报告文件或目录的磁盘使用情况。 - `#dudu-b/home`:以块为单位报告/home目录的磁盘使用情况。 -...
(SHA256) cd29d4dfbb9783e72d19780b4ba715b858d6f6a3b233dc1e8d8706bc8dfdf2ef HIL and Real-Time Test Software Suite 2018年秋季 (MD5) 64BAE665E1F080CF111ED65853A1574E (MD5?) 5c04875c51ac82f16044b9e76f7e26...