使用 Spring Boot 3 jakarta 依赖项生成 WSDL2Java 代码 - 为集合参数生成 setter

问题描述 投票:0回答:1

我正在尝试从 wsdl 文件生成 java 源,以与在 Java 17 /Spring Boot 3 上运行的项目集成。我正在使用以下 Maven 插件设置来实现此目的:

            <plugin>
                <groupId>com.sun.xml.ws</groupId>
                <artifactId>jaxws-maven-plugin</artifactId>
                <version>4.0.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>wsimport</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <packageName>io.test.lib</packageName>
                    <wsdlDirectory>${project.basedir}/src/main/resources/</wsdlDirectory>
                    <wsdlFiles>
                        <wsdlFile>my_wsdl.wsdl</wsdlFile>
                    </wsdlFiles>
                    <wsdlLocation>/my_wsdl.wsdl</wsdlLocation>
<!--                    <xjcArgs>-->
<!--                        <xjcArg>-Xsetters</xjcArg>-->
<!--                    </xjcArgs>-->
                </configuration>
<!--                <dependencies>-->
<!--                    <dependency>-->
<!--                        <groupId>org.jvnet.jaxb2_commons</groupId>-->
<!--                        <artifactId>jaxb2-basics</artifactId>-->
<!--                        <version>1.11.1</version>-->
<!--                    </dependency>-->
<!--                </dependencies>-->
            </plugin>

除了生成的 java 文件不包含列表/集合类型参数的 setter 方法之外,这一切都很好。我之前在 Spring boot 2 中使用注释掉的插件来实现此目的,但这不再起作用。关于如何实现这一目标有什么想法吗?

spring-boot wsdl2java wsimport jakarta-migration jaxws-maven-plugin
1个回答
0
投票

该插件已更新为支持 jakarta 命名空间(JAXB 3 / JAXB 4)

初始存储库位于此处 新存储库位置此处(合并到 maven-jaxb2-plugin 位置,重命名为 jaxb-tools)

您可以遵循 迁移指南,因为我们对 groupId(统一化)和 artifactId 进行了一些更改(删除

jaxb2
参考)

更新后的插件参考配置应如下所示:

            <plugin>
                <groupId>com.sun.xml.ws</groupId>
                <artifactId>jaxws-maven-plugin</artifactId>
                <version>4.0.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>wsimport</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <packageName>io.test.lib</packageName>
                    <wsdlDirectory>${project.basedir}/src/main/resources/</wsdlDirectory>
                    <wsdlFiles>
                        <wsdlFile>my_wsdl.wsdl</wsdlFile>
                    </wsdlFiles>
                    <wsdlLocation>/my_wsdl.wsdl</wsdlLocation>
                    <xjcArgs>
                        <xjcArg>-Xsetters</xjcArg>
                    </xjcArgs>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.jvnet.jaxb</groupId>
                        <artifactId>jaxb-plugins</artifactId>
                        <version>4.0.0</version>
                    </dependency>
                </dependencies>
            </plugin>
© www.soinside.com 2019 - 2024. All rights reserved.