使用命名空间生成的 Jaxb cxf-xjc 插件
Jaxb cxf-xjc pluggin generated with namespace
我正在使用 cfx-xjc-pluging 创建一些 类。在代码中,我可以创建对象,编组和解组没问题。
现在虽然我开始调用 soap 端点并且 运行 遇到了问题。从服务提供者返回的对象没有名称空间,而编组和解组似乎期望它。
构建是这样的:
<build>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-xjc-plugin</artifactId>
<version>${cxf.xjc.plugin.version}</version>
<executions>
<execution>
<id>xjc</id>
<phase>generate-sources</phase>
<goals>
<goal>xsdtojava</goal>
</goals>
<configuration>
<xsdOptions>
<xsdOption>
<xsdDir>${basedir}\src\main\resources\xsd\TotalView-06-2019</xsdDir>
<bindingFile>${basedir}\src\main\resources\bindings\work.xjb</bindingFile>
<packagename>${jax.package.name}</packagename>
</xsdOption>
</xsdOptions>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
我看到的是生成的 package-info.java
有
@javax.xml.bind.annotation.XmlSchema(namespace ="http://xml.place.com/XMLSchema")
package com.code.place.generated;
其中不包括 elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED
我认为这是停止使用名称空间所需要的,但这是我在 java 中首次深入研究 xml 并且可能偏离基础.
有没有办法在调用服务时阻止 Jaxb/cfx-xjc-pluging 期待命名空间或将其添加到 xml?
好吧,这算不上是解决方案,更像是一种 hack。在提供的架构中,我能够将 elementFormDefault="unqualified"
更改为 elementFormDefault="qualified"
并且 类 现在编组时不期望名称空间。我忍不住认为必须有更好的方法。
我正在使用 cfx-xjc-pluging 创建一些 类。在代码中,我可以创建对象,编组和解组没问题。
现在虽然我开始调用 soap 端点并且 运行 遇到了问题。从服务提供者返回的对象没有名称空间,而编组和解组似乎期望它。
构建是这样的:
<build>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-xjc-plugin</artifactId>
<version>${cxf.xjc.plugin.version}</version>
<executions>
<execution>
<id>xjc</id>
<phase>generate-sources</phase>
<goals>
<goal>xsdtojava</goal>
</goals>
<configuration>
<xsdOptions>
<xsdOption>
<xsdDir>${basedir}\src\main\resources\xsd\TotalView-06-2019</xsdDir>
<bindingFile>${basedir}\src\main\resources\bindings\work.xjb</bindingFile>
<packagename>${jax.package.name}</packagename>
</xsdOption>
</xsdOptions>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
我看到的是生成的 package-info.java
有
@javax.xml.bind.annotation.XmlSchema(namespace ="http://xml.place.com/XMLSchema")
package com.code.place.generated;
其中不包括 elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED
我认为这是停止使用名称空间所需要的,但这是我在 java 中首次深入研究 xml 并且可能偏离基础.
有没有办法在调用服务时阻止 Jaxb/cfx-xjc-pluging 期待命名空间或将其添加到 xml?
好吧,这算不上是解决方案,更像是一种 hack。在提供的架构中,我能够将 elementFormDefault="unqualified"
更改为 elementFormDefault="qualified"
并且 类 现在编组时不期望名称空间。我忍不住认为必须有更好的方法。