使用Axis和xfire发布调用WebServicesWord格式文档下载.docx
- 文档编号:20563752
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:35
- 大小:667.52KB
使用Axis和xfire发布调用WebServicesWord格式文档下载.docx
《使用Axis和xfire发布调用WebServicesWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《使用Axis和xfire发布调用WebServicesWord格式文档下载.docx(35页珍藏版)》请在冰豆网上搜索。
http:
//ws.apache.org/目前最新1.4
Axis下载:
http:
//archive.apache.org/dist/ws/
XFire主页:
//xfire.codehaus.org/
XFire下载:
//xfire.codehaus.org/Download
去以上站点下载axis最新包和XFire最新包,包内有axis和XFire依赖的其他jar包。
1.1.1新建工程
1.1.2axis依赖文件
1.1.3XFire依赖文件
1.2Axis发布WebService
1.2.1传递简单数据类型的WebService
1.把Axis依赖的jar包放入lib文件夹下.
2.在web.xml中加入如下:
<
!
--******************axiswsstart******************-->
listener>
<
listener-class>
org.apache.axis.transport.http.AxisHTTPSessionListener
/listener-class>
/listener>
servlet>
servlet-name>
AxisServlet<
/servlet-name>
servlet-class>
org.apache.axis.transport.http.AxisServlet
/servlet-class>
/servlet>
AdminServlet<
org.apache.axis.transport.http.AdminServlet
load-on-startup>
100<
/load-on-startup>
SOAPMonitorService<
org.apache.axis.monitor.SOAPMonitorService
init-param>
<
param-name>
SOAPMonitorPort<
/param-name>
param-value>
5001<
/param-value>
/init-param>
servlet-mapping>
url-pattern>
/servlet/AxisServlet<
/url-pattern>
/servlet-mapping>
*.jws<
/services/*<
/SOAPMonitor<
--uncommentthisifyouwanttheadminservlet-->
--
/servlet/AdminServlet<
-->
session-config>
--Defaultto5minutesessiontimeouts-->
session-timeout>
5<
/session-timeout>
/session-config>
--currentlytheW3ChaventsettledonamediatypeforWSDL;
http:
//www.w3.org/TR/2003/WD-wsdl12-20030303/#ietf-draft
fornowwegowiththebasic'
it'
sXML'
response-->
mime-mapping>
extension>
wsdl<
/extension>
mime-type>
text/xml<
/mime-type>
/mime-mapping>
xsd<
--******************axiswsend******************-->
3.发布到Tomcat5.0+启动Tomcat服务
启动的时候若出现下面错误。
这个是因为配置文件没有,没有关系。
访问http:
//localhost:
8080/1Server/servlet/AxisServlet查看Axis是否配置成功。
出现该图表示配置成功。
4.新建HelloAxis.java文件
package.freshpower.services;
publicclassHelloAxis{
publicStringsayHello(Stringname){
System.out.println("
------------axis1被调用---------"
);
return"
Hello!
"
+name;
}
}
5.在工程下新建deploy.wsdd文件
内容如下:
<
deploymentxmlns="
//xml.apache.org/axis/wsdd/"
xmlns:
java="
//xml.apache.org/axis/wsdd/providers/java"
>
servicename="
HelloAxis"
provider="
java:
RPC"
parametername="
className"
value="
.freshpower.services.HelloAxis"
/>
allowedMethods"
*"
/service>
/deployment>
在同目录下新建deploy.bat批处理文件,内容如下:
@echo.
@echo生成的server-config.wsdd在Tomcat发布的应用下
setAxis_Lib=D:
\projects\1Server\webapp\WEB-INF\lib
setJava_Cmd=java-Djava.ext.dirs=%Axis_Lib%
setAxis_Servlet=http:
8080/1Server/servlet/AxisServlet
%Java_Cmd%org.apache.axis.client.AdminClient-l%Axis_Servlet%deploy.wsdd
@pause
运行deploy.bat文件
6.在执行完后去%TOMCAT_HOME%\webapps\1Server\WEB-INF文件夹下找到server-config.wsdd文件,把该文件复制到1Server\webapp\WEB-INF下。
我们打开该文件可以看到下面段落:
这就是我们刚才发布的webservice的描述段落。
7.刷新http:
8080/1Server/servlet/AxisServlet查看WebService列表。
点击(wsdl)可以查看该WebService对应的wsdl文件。
1.2.2带自定义对象传递的WebService
1.新建User.java文件
package.freshpower.bean;
publicclassUser{
publicUser(){
publicUser(Stringname,Stringage){
this.name=name;
this.age=age;
publicStringname;
publicStringage;
publicStringgetName(){
returnname;
publicvoidsetName(Stringname){
publicStringgetAge(){
returnage;
publicvoidsetAge(Stringage){
2.新建HelloAxisObj.java
importjava.util.ArrayList;
importjava.util.List;
import.freshpower.bean.User;
publicclassHelloAxisObj{
publicUsergetUser(Useruser){
------------------axis2被调用----------------"
user.setName("
ujjboy"
user.setAge("
22"
returnuser;
publicList<
String>
getList(){
List<
list=newArrayList<
();
list.add("
aaaaaaa"
bbbbbbb"
ccccccc"
returnlist;
3.我们可以直接修改server-config.wsdd文件来发布WebService。
直接插入下面段落来发布。
HelloAxisObj"
.freshpower.services.HelloAxisObj"
beanMappingqname="
scNS:
List"
scNS="
urn:
BeanService"
languageSpecificType="
java.util.List"
/>
User"
.freshpower.bean.User"
4.重启Tomcat服务器。
5.刷新http:
1.3XFire发布WebServices
1.3.1传递简单数据类型的WebService
1.把XFire依赖的jar包放入lib文件夹下。
2.在web.xml中加入如下代码:
--******************xfirestart******************-->
XFireServlet<
org.codehaus.xfire.transport.http.XFireConfigurableServlet
0<
/servlet/XFireServlet/*<
/service/*<
--******************Xfireend******************-->
3.编写程序代码
首先编写一个功能的接口类。
publicinterfaceHelloXfire{
publicStringsayHello(Stringname);
再编写一个功能的接口实现类。
publicclassHelloXfireImplimplementsHelloXfire{
publicStringsayHello(Stringname){
------------------xfire1被调用----------------"
4.在src下或者直接在webapp\WEB-INF下创建一个文件夹META-INF,在META-INF下边在创建一个目录xfire,在xfire目录里边创建一个services.xml文件,内容如下:
?
xmlversion="
1.0"
encoding="
UTF-8"
beans>
servicexmlns="
//xfire.codehaus.org/config/1.0"
name>
HelloXfire<
/name>
namespace>
/namespace>
serviceClass>
.freshpower.services.HelloXfire
/serviceClass>
implementationClass>
.freshpower.services.HelloXfireImpl
/implementationClass>
/beans>
5.重启Tomcat服务出现如下图加载信息代表发布正确完成。
6.访问http:
8080/1Server/service/查看WebService列表和wsdl文件。
点击[wsdl]就可以查看它的wsdl描述文件。
1.3.2传递复杂数据类型的WebService
1.了解XFire的绑定机制Aegis
首先说明,Aegis为XFire默认的绑定方式,那么何时需要绑定?
Aegis支持的类型
1).基本类型:
int,double,float,long,byte[],short,String,decimal
2).数组(Array)
3).集合类型(Collection)
4).日期类型:
java.util.Date,java.util.Calendar,java.sql.Timestamp,java.sql.Date,java.sql.Time
5).XML:
org.w3c.dom.Docmument,org.jdom.Element,XMLStreamReader,XML文本
6).包含以上类型的自定义类型
Aegis需要绑定的类型
1).集合类型(Collection)
2).包含集合类型的自定义类型
当使用JDK1.4时,或者是使用了JDK1.5及以上版本但是没有使用泛型的时候、当遇到需要映射POJO或配置WebService接口方法返回类型(如集合类型)时,需要进行绑定,此时aegis的绑定为建立.aegis.xml的文件。
2.编写接口类HelloXfireObj.java
publicinterfaceHelloXfireObj{
publicUsergetUser(Useruser);
getList();
编写接口实现类
publicclassHelloXfireObjImplimplementsHelloXfireObj{
publicUsergetUser(Useruser){
------------------Xfire2被调用----------------"
3.绑定数据类型。
新建与接口类同名的.aegis.xml文件如下图:
文件内容如下:
mappings>
mapping>
methodname="
getUser"
parameterindex="
0"
componentType="
return-typecomponentType="
/method>
/mapping>
/mappings>
注意List里面带的是简单数据类型就不用绑定,带的是复杂类型就用绑定类型。
而且List一定要声明所包含的对象。
例如List<
User>
List<
int>
等。
4.修改webapp\WEB-INF\services.xml发布WebService。
和上例没什么区别,在文件中增加节点:
HelloXfireObj<
.fresh
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 Axis xfire 发布 调用 WebServices