有两个WSDL,它们共享一些用于定义数据类型的模式。下面是其中一个WSDL的示例:
<wsdl:definitions
name="FooService"
targetNamespace="http://xmlns.my.org/services/FooService/v001"
xmlns:srv="http://xmlns.my.org/services/FooService/v001"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:fault="java:org.my.exception"
...
>
<wsdl:types>
<xsd:schema>
<xsd:import namespace="java:org.my.exception" schemaLocation="../xsd/common/BusinessException.xsd"/>
<xsd:import namespace="http://xmlns.my.org/services/FooServiceMessages/v001" schemaLocation="../xsd/fooservice/FooServiceMessages_v001.xsd"/>
</xsd:schema>
</wsdl:types>
...
<wsdl:message name="BusinessException">
<wsdl:part element="fault:BusinessException" name="BusinessException"/>
</wsdl:message>
...
<wsdl:portType name="IFooService">
<wsdl:operation name="getItems">
...
<wsdl:fault message="srv:BusinessException" name="BusinessException"/>
</wsdl:operation>
...
</wsdl:portType>
...
</wsdl:definitions>
BusinessException.xsd
是常见的方案之一。
<bindings version="2.1" xmlns="http://java.sun.com/xml/ns/jaxb">
<bindings scd="x-schema::tns" xmlns:tns="java:org.my.exception">
<schemaBindings map="false">
<package name="org.my.integration.dto.common"/>
</schemaBindings>
<bindings scd="~tns:BusinessException">
<class ref="org.my.integration.dto.common.BusinessException"/>
</bindings>
</bindings>
<bindings scd="x-schema::tns" xmlns:tns="http://xmlns.my.org/BaseIdentifiers/v001">
<schemaBindings map="false">
<package name="org.my.integration.dto.common"/>
</schemaBindings>
<bindings scd="~tns:EntityIdentifierListType">
<class ref="org.my.integration.dto.common.EntityIdentifierListType"/>
</bindings>
<bindings scd="~tns:...">
<class ref="..."/>
</bindings>
...
</bindings>
</bindings>
wsimport -B-XautoNameResolution -Xnocompile -s ./../java/ -verbose -b ./bindings/fooservice/jaxws-bindings.xml -b ./bindings/fooservice/jaxb-bindings.xml -b ./bindings/common/common.episode -keep ./wsdl/FooService_v001.wsdl
[ERROR] Schema descriptor {java:org.my.exception}BusinessException in message part "BusinessException" is not defined and could not be bound to Java. ...
是否有一种方法可以将插曲文件与wsimport
一起用于直接导入WSDL中的方案(就像在我的例子中businessexception.xsd
)?
看起来这是wsimport的某种bug或不正确行为。Apache CXF中的wsdl2java工具缺少这个问题。
我认为使用插曲有一些问题(它们不包括简单类型?)和注释?有解决这个问题的办法吗?我在网上找不到很多关于这个问题的东西。感谢你的提示。
当目标WSDL/XSDS放在某些特定路径下时,wsimport和xjc命令(都是作为Java JDK的一部分下载的)将忽略提供的jaxb绑定文件。
问题内容: 用例: 想要将自定义注释插入由JAXB生成的Java类中的字段 问题: 使用Annotate插件+ JAXB [1],能够成功插入自定义注释,但是它们是通过getter方法而非字段插入的。Morphia(mongo DB)批注(我实际上要插入)批注只能批注java字段[2]。 我的测试XSD: 我的测试绑定xjb: 我生成的Java代码段: 如您所见,我要注释“栏”字段。请指教。如有需
曲线概述 在“曲线”调整中,可以调整图像的整个色调范围内的点。最初,图像的色调在图形上表现为一条直的对角线。在调整 RGB 图像时,图形右上角区域代表高光,左下角区域代表阴影。图形的水平轴表示输入色阶(初始图像值);垂直轴表示输出色阶(调整后的新值)。在向线条添加控制点并移动它们时,曲线的形状会发生更改,反映出图像调整。曲线中较陡的部分表示对比度较高的区域;曲线中较平的部分表示对比度较低的区域。
我正在使用JAXB操作XML文件中的数据,并将这些值插入到数据库中。我有一个从特定的XML标记中提取数据的问题。这个XML标记包含字母数字值,但大约95%(如果不是99%)的时候,它包含的值是整数。因此,我将这些值视为。 提取这些引用的值会删除前导零,从而将作为结果值。我不明白为什么。我觉得JAXB将这些值视为整数。 我怎样才能得到正确的价值呢? 编辑: 下面是相应的POJO@XMLAccesso
回调函数的后序发展 在第六部分我们认识到这样一个情况:回调是Twisted异步编程中的基础。除了与reactor交互外,回调可以安插在任何我们写的Twisted结构内。因此在使用Twisted或其它基于reactor的异步编程体系时,都意味需要将我们的代码组织成一系列由reactor循环可以激活的回调函数链。 即使一个简单的get_poetry函数都需要回调,两个回调函数中一个用于处理正常结果而另