猿问

使用命名空间生成的 Jaxb cxf-xjc 插件

我正在使用 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 中?


当年话下
浏览 121回答 1
1回答

慕容森

好吧,这与其说是一种解决方案,不如说是一种黑客攻击。在提供的模式中,我能够更改elementFormDefault="unqualified"为elementFormDefault="qualified",并且现在编组时类不需要命名空间。我忍不住想必须有更好的方法。
随时随地看视频慕课网APP

相关分类

Java
我要回答