[英]How do I prevent JAXBElement<String> from being generated in a CXF Web Service client?
我正在尝试使用CXF创建一个Web服务客户端来使用WCF Web服务。 当我使用wsdl2java时,它使用JAXBElement类型而不是String生成对象。
我读到了使用jaxb bindings.xml文件设置generateElementProperty =“false”来尝试解决问题,但我正在使用的Web服务包含7个导入的模式。
如何在所有七个模式中指定generateElementProperty="false"
,还是有办法将其应用于所有模式?
您必须创建一个绑定文件,如下所示,这将全局应用并将其用作wsdl2java - b“bindings.txt”“wsdl”
<jaxb:bindings version="2.1"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<jaxb:globalBindings generateElementProperty="false"/>
</jaxb:bindings>
需要注意的是在我的情况,我不得不使用<xjc:simple
在我的JAXB绑定文件,以摆脱的JAXBElement
在请求和响应包装@Endpoint
:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" elementFormDefault="qualified" attributeFormDefault="unqualified" jaxb:extensionBindingPrefixes="xjc" jaxb:version="2.1">
<xs:annotation>
<xs:appinfo>
<jaxb:globalBindings>
<xjc:simple /><!-- it did only work after adding this -->
</jaxb:globalBindings>
</xs:appinfo>
</xs:annotation>
</xs:schema>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.