不罗嗦,直接问题描述:我在使用java优先的方式写CXF服务时,因为用到了Map类型,所以想到使用CXF框架非默认的Aegis数据绑定方式。但是按照我自以为的方式配置的bean文件,在发布时遇到了异常:
异常摘要
nested exception is org.springframework.beans.NotWritablePropertyException:
Invalid property 'dataBinding' of bean class [org.apache.cxf.jaxws.spring.EndpointDefinitionParser$SpringEndpointImpl]: Bean property 'dataBinding' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
我原来的配置文件为:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<jaxws:endpoint id="LabsQuerying" implementor="rc.yuzone.services.LabsQueryImpl"
address="/LabsQueryingService">
<jaxws:dataBinding>
<bean class="org.apache.cxf.aegis.databinding.AegisDatabinding" />
</jaxws:dataBinding>
</jaxws:endpoint>
</beans>
后来谷歌了好久,终于在一张已经被删了的网页中(还好有快照功能)找到了灵感,我修改了配置文件,用了另一种绑定方式:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<jaxws:endpoint id="LabsQuerying" implementor="rc.yuzone.services.LabsQueryImpl"
address="/LabsQueryingService">
<jaxws:serviceFactory>
<bean class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">
<property name="dataBinding" ref="aegisBean" />
<property name="serviceConfigurations">
<list>
<bean class="org.apache.cxf.jaxws.support.JaxWsServiceConfiguration" />
<bean class="org.apache.cxf.aegis.databinding.AegisServiceConfiguration" />
<bean class="org.apache.cxf.service.factory.DefaultServiceConfiguration" />
</list>
</property>
</bean>
</jaxws:serviceFactory>
</jaxws:endpoint>
<bean id="aegisBean" class="org.apache.cxf.aegis.databinding.AegisDatabinding"/>
</beans>
如此修改以后再部署,Spring就不报错了,至少可以部署成功了。至于是否影响后续的开发,还有待时间检验;至于为什么,再研究吧。
分享到:
相关推荐
赠送jar包:cxf-rt-databinding-jaxb-3.0.1.jar; 赠送原API文档:cxf-rt-databinding-jaxb-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-databinding-jaxb-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-...
lzo-java.zip,纯java中的lzo压缩编解码器liblzo2 lzo压缩算法的纯java实现
使用cxf webservice时容易出现的异常
cxf使用中编码问题,有关于gbk等的编码问题在cxf中的解决方法
CXF框架简单介绍、CXF框架工具使用、CXF框架工具报错解决
CXF webservice 使用实例,CXF创建webservice以及调用示例;WEBSERVICE输入、输出拦截器设置;用户验证;文件上传等。附带所有使用到的JAR包。
cxf在创建客户端出现编码GBK-不可映射字符的编码问题解决的jar
这是我在使用cxf+spring进行开发中的一点总结,如何搭建开发环境、如何配置dao使用,如何解决乱码问题等的经验分享
spring 4.2.0 集成的cxf3.1.18的jar包,cxf-core-3.1.18.jar、cxf-rt-bindings-soap-3.1.18.jar、cxf-rt-databinding-jaxb-3.1.18.jar、cxf-rt-frontend-jaxws-3.1.18.jar、cxf-rt-frontend-simple-3.1.18.jar、cxf-...
cxf客户端出现GBK编码问题解决cxf客户端出现GBK编码问题解决jar.rar
3.0.16版本所需jar包! 测试代码: public static void main(String[] args) throws Exception { JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); //第三方系统的webservice ...
是一个比较详细的cxf使用项目,里面有矿建搭建,也有cxf的使用,内容比较详细和丰富
CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First...
CXF使用EndpointImpl发布WebService加入拦截器
自己在网上找了很多cxf实现rest风格的文章也不少,但是都讲的不全面,也没有lib包,所以自己参考网上零散的文章,搞了大半天才成功的。现在把源码发上来,java代码只有12K,主要是lib里面的全部jar包(spring、cxf等...
利用Apache CXF开发webservice接口需要用到的...cxf-rt-databinding-jaxb-3.0.15.jar cxf-rt-frontend-jaxws-3.0.15.jar cxf-rt-frontend-simple-3.0.15.jar cxf-rt-transports-http-3.0.15.jar cxf-rt-wsdl-3.0.15.jar
3.抛弃cxf默认的log方式,使用log4j的方式,方便以后整合到其他app中而不改变之前系统log的方式。 答谢: 关于cxf的深入研究,我发现国人翻译的东西很少,我想尽自己的微薄之力能给大家带些有用的东西,如果有什么...
CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First...
cxf创建客户端出现GBK编码问题解决的jar 评分: cxf在创建客户端出现编码GBK-不可映射字符的编码问题解决的jar
CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First...