使用Axis和xfire发布调用WebServices.docx
- 文档编号:7452327
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:35
- 大小:667.52KB
使用Axis和xfire发布调用WebServices.docx
《使用Axis和xfire发布调用WebServices.docx》由会员分享,可在线阅读,更多相关《使用Axis和xfire发布调用WebServices.docx(35页珍藏版)》请在冰豆网上搜索。
使用Axis和xfire发布调用WebServices
目录
一使用Axis和XFire发布WebService2
1.1准备工作2
1.1.1新建工程2
1.1.2axis依赖文件3
1.1.3XFire依赖文件3
1.2Axis发布WebService4
1.2.1传递简单数据类型的WebService4
1.2.2带自定义对象传递的WebService8
1.3XFire发布WebServices10
1.3.1传递简单数据类型的WebService10
1.3.2传递复杂数据类型的WebService12
附录:
1Server的结构16
二调用WebServices17
2.1准备工作17
2.1.1新建工程17
2.1.2启动Tomcat上发布的1Server服务17
2.2Axis发布的WebService调用方式18
2.2.1DynamicInvocationInterface(DII)方式18
2.2.2DynamicProxy方式19
2.2.3Stubs方式20
2.3调用XFire发布的WebService22
2.3.1服务以jar包形式发布的时候直接调用23
2.3.2使用Axis的Client包23
2.3.3使用Xfire的Client包24
附录2:
2Client目录结构31
一使用Axis和XFire发布WebService
1.1准备工作
Axis主页:
http:
//ws.apache.org/目前最新1.4
Axis下载:
http:
//archive.apache.org/dist/ws/
XFire主页:
http:
//xfire.codehaus.org/
XFire下载:
http:
//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******************-->
org.apache.axis.transport.http.AxisHTTPSessionListener
org.apache.axis.transport.http.AxisServlet
org.apache.axis.transport.http.AdminServlet
org.apache.axis.monitor.SOAPMonitorService
--uncommentthisifyouwanttheadminservlet-->
--
-->
--Defaultto5minutesessiontimeouts-->
--currentlytheW3ChaventsettledonamediatypeforWSDL;
http:
//www.w3.org/TR/2003/WD-wsdl12-20030303/#ietf-draft
fornowwegowiththebasic'it'sXML'response-->
--******************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文件
内容如下:
//xml.apache.org/axis/wsdd/"xmlns: java="http: //xml.apache.org/axis/wsdd/providers/java"> RPC"> 在同目录下新建deploy.bat批处理文件,内容如下: @echo. @echo生成的server-config.wsdd在Tomcat发布的应用下 @echo. setAxis_Lib=D: \projects\1Server\webapp\WEB-INF\lib setJava_Cmd=java-Djava.ext.dirs=%Axis_Lib% setAxis_Servlet=http: //localhost: 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: //localhost: 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){ this.name=name; } publicStringgetAge(){ returnage; } publicvoidsetAge(Stringage){ this.age=age; } } 2.新建HelloAxisObj.java package.freshpower.services; importjava.util.ArrayList; importjava.util.List; import.freshpower.bean.User; publicclassHelloAxisObj{ publicUsergetUser(Useruser){ System.out.println("------------------axis2被调用----------------"); user.setName("ujjboy"); user.setAge("22"); returnuser; } publicList System.out.println("------------------axis2被调用----------------"); List list.add("aaaaaaa"); list.add("bbbbbbb"); list.add("ccccccc"); returnlist; } } 3.我们可以直接修改server-config.wsdd文件来发布WebService。 直接插入下面段落来发布。 RPC"> List"xmlns: scNS="urn: BeanService"languageSpecificType="java: java.util.List"/> User"xmlns: scNS="urn: BeanService"languageSpecificType="java: .freshpower.bean.User"/> 4.重启Tomcat服务器。 5.刷新http: //localhost: 8080/1Server/servlet/AxisServlet查看WebService列表。 点击(wsdl)可以查看该WebService对应的wsdl文件。 1.3XFire发布WebServices 1.3.1传递简单数据类型的WebService 1.把XFire依赖的jar包放入lib文件夹下。 2.在web.xml中加入如下代码: --******************xfirestart******************--> org.codehaus.xfire.transport.http.XFireConfigurableServlet --******************Xfireend******************--> 3.编写程序代码 首先编写一个功能的接口类。 package.freshpower.services; publicinterfaceHelloXfire{ publicStringsayHello(Stringname); } 再编写一个功能的接口实现类。 package.freshpower.services; publicclassHelloXfireImplimplementsHelloXfire{ publicStringsayHello(Stringname){ System.out.println("------------------xfire1被调用----------------"); return"Hello! "+name; } } 4.在src下或者直接在webapp\WEB-INF下创建一个文件夹META-INF,在META-INF下边在创建一个目录xfire,在xfire目录里边创建一个services.xml文件,内容如下: xmlversion="1.0"encoding="UTF-8"? > //xfire.codehaus.org/config/1.0"> .freshpower.services.HelloXfire .freshpower.services.HelloXfireImpl 5.重启Tomcat服务出现如下图加载信息代表发布正确完成。 6.访问http: //localhost: 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 package.freshpower.services; importjava.util.List; import.freshpower.bean.User; publicinterfaceHelloXfireObj{ publicUsergetUser(Useruser); publicList } 编写接口实现类 package.freshpower.services; importjava.util.ArrayList; importjava.util.List; import.freshpower.bean.User; publicclassHelloXfireObjImplimplementsHelloXfireObj{ publicUsergetUser(Useruser){ System.out.println("------------------Xfire2被调用----------------"); user.setName("ujjboy"); user.setAge("22"); returnuser; } publicList System.out.println("------------------Xfire2被调用----------------"); List list.add("aaaaaaa"); list.add("bbbbbbb"); list.add("ccccccc"); returnlist; } } 3.绑定数据类型。 新建与接口类同名的.aegis.xml文件如下图: 文件内容如下: xmlversion="1.0"encoding="UTF-8"? > 注意List里面带的是简单数据类型就不用绑定,带的是复杂类型就用绑定类型。 而且List一定要声明所包含的对象。 例如List 4.修改webapp\WEB-INF\services.xml发布WebService。 和上例没什么区别,在文件中增加节点: //xfire.codehaus.org/config/1.0"> .fresh
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 Axis xfire 发布 调用 WebServices