WebSerivce xFire客户端.doc_第1页
WebSerivce xFire客户端.doc_第2页
WebSerivce xFire客户端.doc_第3页
WebSerivce xFire客户端.doc_第4页
WebSerivce xFire客户端.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

xFire客户端生成及使用1.xFire客户端生成右键项目名称,new other ,选择 Code generation from WSDL document 填写WSDL地址或者文件路径,(由客户端提供),已经生成代码存放的路径生成的文件如下:2. 配置weblogic启动项1. 由于xFire需要的jar,会与weblogic自带的jar文件产生冲突,所以weblogic启动时需要先加载一些jar :2. 修改weblogic的启动配置。对startWebLogic.cmd进行编辑,找到 set CLASSPATH = 设置的地方,加上需要载入的jar,如:set CLASSPATH= %MEDREC_WEBLOGIC_CLASSPATH%修改成:(假设 以上jar包存放在E:lib下面)set CLASSPATH=E:libxfire-aegis-1.2.6.jar;E:libxfire-jaxb2-1.2.6.jar;E:libxfire-jsr181-api-1.0-M1.jar;E:libqname.jar;E:libwsdl4j-1.5.2.jar;E:libjdom-1.0.jar;E:libxfire-all-1.2.6.jar;E:libjaxb-api-2.0.jar;E:libcommons-httpclient-3.0.jar;E:libcommons-codec-1.3.jar;E:libcommons-beanutils-1.7.0.jar;E:libcommons-beanutils-1.7.0.jar;E:libcommons-logging-1.0.4.jar;E:liblog4j-1.2.13.jar;%CLASSPATH%;%MEDREC_WEBLOGIC_CLASSPATH%3. 代码编写1. 服务调用根据xFire生成的客户端ScheduleWebServiceClient client = new ScheduleWebServiceClient();ScheduleWebServicePortType service = client.getScheduleWebServiceHttpPort();这样,直接可以由service调用webService的接口。2. 数据封装:xFire生成出来的调用webService接口所需要的实体类都在vo文件夹下面,在vo类里面,与普通的java实体一样,都包含属性 和 该属性的set,get方法,但是除基本数据类型外,其他的类型都被封装成JAXBElement,如String类型,被封装成:JAXBElement。如:ScheduleDataForCheckVo.javapublic class ScheduleDataForCheckVo XmlElementRef(name = cancelContent, namespace = , type = JAXBElement.class)protected JAXBElement cancelContent;public JAXBElement getCancelContent() return cancelContent;public void setCancelContent(JAXBElement value) this.cancelContent = (JAXBElement ) value);生成一个xml元素实例需要四个参数:public JAXBElement(QName name,/xml 元素标记名称的 Java 绑定 Class declaredType, / xml 元素声明类型的 Java 绑定 Class scope, / xml 元素声明作用域的 Java 绑定 T value) /表示 xml 元素值的 Java 实例1.JAXBElement,JAXBElement类型:注意 new QName 时候的两个参数,对应着 vo 文件里面该属性注释中的name和namespace.于是,我们在给VO对象set值的时候,就应该这样写:scheduleDataVo.setCancelContent(New JAXBElement(new QName(,cancelContent),String.class,null,要传递的值); 2. DATE类型,在VO类中会转变成 XMLGregorianCalendar 类型,这时候我们需要将日期转化成 Calendar 类型,再转成 XMLGregorianCalendar 类型下面是我写的一个时间转换的公共方法:import mons.beanutils.*;import java.util.Calendar;import java.util.Date;import javax.xml.datatype.XMLGregorianCalendar;import ernal.jaxp.datatype.XMLGregorianCalendarImpl;/* * XMLGregorianCalendar 和 Calendar 之间的转换器,适用于 Apache Commons BeanUtils.copyProperties 方法。 * / 当需要转换为 XMLGregorianCalendar 类型时使用 *ConvertUtils.register( *new XMLGregorianCalendarConverter(), *XMLGregorianCalendar.class); * / 当需要转换为 Calendar 类型时使用 * ConvertUtils.register(new XMLGregorianCalendarConverter(), Calendar.class); * BeanUtils.copyProperties(destObj, srcObj); * 注意:java.util.Calendar 的时区 (ZONE_OFFSET) 是以毫秒为单位的值。 * /也可以直接传递 DATE 类型 的数据进来 * converter.convert(XMLGregorianCalendar.class,new Date() * */public class XMLGregorianCalendarConverter implements Converter public Object convert(Class arg0, Object arg1) if(arg1 instanceof XMLGregorianCalendar) return this.convert(arg0, (XMLGregorianCalendar)arg1); else return this.convert(arg0, (Calendar)arg1); public Calendar convert(Class calendarType, XMLGregorianCalendar xmlCalendar) return xmlCalendar.toGregorianCalendar(); public XMLGregorianCalendar convert(Class xmlCalendarType, Calendar calendar) XMLGregorianCalendar cal = new XMLGregorianCalendarImpl(); cal.setYear(calendar.get(Calendar.YEAR); cal.setMonth(calendar.get(Calendar.MONTH) +1); cal.setDay(calendar.get(Calendar.DAY_OF_MONTH); cal.setHour(calendar.get(Calendar.HOUR_OF_DAY); cal.setMinute(calendar.get(Calendar.MINUTE); cal.setSecond(calendar.get(Calendar.SECOND); cal.setMillisecond(calendar.get(Calendar.MILLISECOND); cal.setTimezone(calendar.get(Calendar.ZONE_OFFSET) / 60000 ); return cal; public XMLGregorianCalendar convert(Class xmlCalendarType, Date date) if(date = null) date = new Date(); date.setYear(0); System.out.println( convert new Date(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论