我正在使用cfx-xjc-pluging创建一些类。在代码中,我可以创建对象,封送和封送都没问题。
现在,尽管我开始进行肥皂端点的呼叫,但遇到了问题。服务提供者返回的对象没有名称空间,而编组和解组似乎期望它。
构建过程如下:
<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中?
答案 0 :(得分:0)
这不是解决方案,而是hack。在提供的架构中,我能够将elementFormDefault="unqualified"
更改为elementFormDefault="qualified"
,并且现在封送处理时,这些类不希望使用名称空间。我忍不住认为必须有更好的方法。