繁体   English   中英

如何防止在CXF Web服务客户端中生成JAXBElement <String>?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM