① 在Tomcat上如何部署webservice的项目,我是用xfire+Spring+Hibernate写的webservice项目
以我的版本为例把项目导成.war文件放到Tomcat目录中的webapps中,然后启动Tomcat就可以了
② java写了个基于XFire的接口,给java调用是没问题的,然后换到C#调用的时候报了这个错误,请问是什么原因
根据网络:XFire是新一代的Java Web服务引擎。。。那你怎么能要求它一定与C#兼容呢?如果是webservice那就是通用的
③ xFire的 aegis.xml配置问题。我配置了IGetBookService.aegis.xml和BBook.aegis.xml文件,但仍有问题。
<method name="getAllBoooks">
<return-type componentType="com.entity.BBook"/>
</method></mapping></mappings>
这个的返回类型是com.entity.BBook,是个实体
public interface IGetBookService {
public List getAllBooks();}
这里getAllBooks()返回的是List
Cannot create mapping for java.util.List, unspecified component type for return type of method getAllBooks in interface com.qt.order.IGetBookService
这个错误代码的意思是,不能与List做映射,也就是说BBook不能被强制映射成List
你看把
<return-type componentType="com.entity.BBook"/>
改成
<return-type componentType="java.util.List"/>
行不
④ xfire自定义类型传输
webservices里传输的对象,不能自定义为集合类的,具体原因我也不清楚,以前我也试过用ArrayList、HashMap作为自定义传输对象,都出错了。
建议你把Map封装到一个java对象中,webservices是可以传输java对象的。后来我就是这么实现的。
⑤ 怎么用xfire 自动生成客户端代码
xFire客户端生成及使用
首先下载XFIRE插件 是用eclipse
1.xFire客户端生成
右键项目名称,new — other ,选择 Code generation from WSDL document
填写WSDL地址或者文件路径,(由客户端提供),已经生成代码存放的路径
生成的文件如下:
配置weblogic启动项
由于xFire需要的jar,会与weblogic自带的jar文件产生冲突,所以weblogic启动时需要先加载一些jar :
修改weblogic的启动配置。对startWebLogic.cmd进行编辑,找到 set CLASSPATH = 设置的地方,加上需要载入的jar,如:
set CLASSPATH= %MEDREC_WEBLOGIC_CLASSPATH%
修改成:(假设 以上jar包存放在E:\lib\下面)
set CLASSPATH=E:\lib\xfire-aegis-1.2.6.jar;
E:\lib\xfire-jaxb2-1.2.6.jar;E:\lib\xfire-jsr181-api-1.0-M1.jar;
E:\lib\qname.jar;E:\lib\wsdl4j-1.5.2.jar;E:\lib\jdom-1.0.jar;
E:\lib\xfire-all-1.2.6.jar;E:\lib\jaxb-api-2.0.jar;E:\lib\commons-httpclient-3.0.jar;
E:\lib\commons-codec-1.3.jar;E:\lib\commons-beanutils-1.7.0.jar;
E:\lib\commons-beanutils-1.7.0.jar;E:\lib\commons-logging-1.0.4.jar;
E:\lib\log4j-1.2.13.jar;
%CLASSPATH%;%MEDREC_WEBLOGIC_CLASSPATH%
代码编写
服务调用
根据xFire生成的客户端
这样,直接可以由service调用webService的接口。
数据封装:
xFire生成出来的调用webService接口所需要的实体类都在vo文件夹下面,在vo类里面,与普通的java实体一样,都包含属性 和 该属性的set,get方法,但是除基本数据类型外,其他的类型都被封装成JAXBElement,如String类型,被封装成:JAXBElement<String>。
如:ScheleDataForCheckVo.java
生成一个xml元素实例需要四个参数:
public JAXBElement(QName name, //xml 元素标记名称的 Java 绑定
Class<T> declaredType, // xml 元素声明类型的 Java 绑定
Class scope, // xml 元素声明作用域的 Java 绑定
T value) //表示 xml 元素值的 Java 实例
1.JAXBElement<String>,JAXBElement<Long>类型:
注意 new QName 时候的两个参数,对应着 vo 文件里面该属性注释中的name和namespace.
于是,我们在给VO对象set值的时候,就应该这样写:
DATE类型,在VO类中会转变成 XMLGregorianCalendar 类型,这时候我们需要将日期转化成 Calendar 类型,再转成 XMLGregorianCalendar 类型
下面是我写的一个时间转换的公共方法:
图片上传不了 705646946 有问题联系吧 一起探讨
⑥ 如何用Xfire生成WSDL文件,是生成WSDL文件,而不是根据WSDL文件生成客户端.
看看。。
⑦ xfire实现 webservice怎么传送xml文件
用Xfire传附件,首先得修改配置文件支持附件,其次,代码参数应该先将文件转换为byte数组或者DataHandler数组然后再进行传递就OK了。
⑧ 我用XFire实现ws_security,配置的services.xml文件如下,怎么老报错啊
根据报错,应该是你的bean路径写错了或者说你的bean不存在,导致找不到bean
⑨ xfire客户端需要哪些jar文件
xfire客户端所需的包:
错误:java.lang.NoSuchMethodError: javax.xml.namespace.QName.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Stringjavax.xml.namespace.QName的方法定义太旧,用xfile的lib里面的stax-api-1.0.1.jar和stax-utils-20040917.jar并删除旧的javax.xml.namespace.QName如jaxrpc.jar(不确定是否必须,后来加入又没有再报错) 错误:Provider com.bea.xml.stream.MXParserFactory not found javax.xml.stream.FactoryConfigurationError: Provider com.bea.xml.stream.MXParserFactory not found类路径中的包没有StAX 接口的实现,拷贝包:
wstx-asl-3.2.0.jar,stax-api-1.0.1.jar,stax-utils-20040917.jar
xfire客户端所需的包:
commons-httpclient-3.0.jar
jaxen-1.1-beta-9.jar
jdom-1.0.jar
stax-api-1.0.1.jar
stax-utils-20040917.jar
wsdl4j-1.6.1.jar
wss4j-1.5.0.jar
wstx-asl-3.2.0.jar
xfire-all-1.2.4.jar
xfire-jsr181-api-1.0-M1.jar
xml-apis-1.0.b2.jar
XmlSchema-1.1.jar
xmlsec-1.3.0.jar
⑩ xfire运行时报错,可以访问到wsdl文件,但是调用方法时就报空指针,折磨了我一上午了,求救。。。
空指针错误。xfire我没用过,不清楚.