MavengeneratePackage用于从模式定义生成类的wsdl

2024-01-04

我正在使用 Java14 和 Spring Boot。

我需要基于 wsdl 生成一些 Java 类。然而,它正在生成,它将所有生成的类放在平面结构中,而不是放在 wsdl 中指定的包中。

如果有人可以提供一些建议,我将不胜感激。

更多细节:

POM(可以看到生成的包是com.travellinck.client.approval)

    <build>
        <plugins>
<!--            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin> -->
            <plugin>
                <groupId>org.jvnet.jaxb2.maven2</groupId>
                <artifactId>maven-jaxb2-plugin</artifactId>
                <version>0.13.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <generatePackage>com.travellinck.client.approval</generatePackage>
                    <generateDirectory>${project.basedir}/src/main/java</generateDirectory>
                    <schemaDirectory>${project.basedir}/src/main/resources/wsdl</schemaDirectory>
                    <schemaIncludes>
                        <include>*.wsdl</include>
                    </schemaIncludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

WSDL

<!--  Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.5-b05 .  -->
<!--  Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.5-b05 .  -->
<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.travellinck.com/client/approval/service" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.travellinck.com/client/approval/service" name="ApprovalService">
    <types>
        <xsd:schema>
            <xsd:import namespace="http://www.travellinck.com/client/approval/service" schemaLocation="http://localhost:8088/approval?xsd=1"/>
        </xsd:schema>
        <xsd:schema>
            <xsd:import namespace="http://www.travellinck.com/client/approval/evaluation/strategy" schemaLocation="http://localhost:8088/approval?xsd=2"/>
        </xsd:schema>
        <xsd:schema>
            <xsd:import namespace="http://www.travellinck.com/client/approval/evaluation" schemaLocation="http://localhost:8088/approval?xsd=3"/>
        </xsd:schema>
        <xsd:schema>
            <xsd:import namespace="http://www.travellinck.com/client/approval/contact" schemaLocation="http://localhost:8088/approval?xsd=4"/>
        </xsd:schema>
        <xsd:schema>
            <xsd:import namespace="http://www.travellinck.com/client/approval" schemaLocation="http://localhost:8088/approval?xsd=5"/>
        </xsd:schema>
    </types>
    <message name="submitRequestForApproval">
        <part xmlns:ns1="http://www.travellinck.com/client/approval" name="approvalRequest" element="ns1:approvalRequest"/>
    </message>
    <message name="submitRequestForApprovalResponse">
        <part xmlns:ns2="http://www.travellinck.com/client/approval" name="approvalResponse" element="ns2:approvalResponse"/>
    </message>
    <message name="UnsupportedBusinessRequest">
        <part name="fault" element="tns:unsupportedBusinessRequest"/>
    </message>
    <message name="UnsupportedSupportingDocument">
        <part name="fault" element="tns:unsupportedSupportingDocument"/>
    </message>
    <message name="getApprovalState">
        <part xmlns:ns3="http://www.travellinck.com/client/approval" name="getApprovalStateRequest" element="ns3:getApprovalStateRequest"/>
    </message>
    <message name="getApprovalStateResponse">
        <part xmlns:ns4="http://www.travellinck.com/client/approval" name="getApprovalStateResponse" element="ns4:getApprovalStateResponse"/>
    </message>
    <message name="UnknownApprovalRequest">
        <part name="fault" element="tns:unknownApprovalRequest"/>
    </message>
    <message name="withdrawRequestForApproval">
        <part xmlns:ns5="http://www.travellinck.com/client/approval" name="withdrawApprovalRequest" element="ns5:withdrawApprovalRequest"/>
    </message>
    <message name="withdrawRequestForApprovalResponse">
        <part xmlns:ns6="http://www.travellinck.com/client/approval" name="withdrawApprovalResponse" element="ns6:withdrawApprovalResponse"/>
    </message>
    <message name="InvalidRequest">
        <part name="fault" element="tns:invalidRequest"/>
    </message>
    <message name="RequestNoLongerInProgress">
        <part name="fault" element="tns:requestNoLongerInProgress"/>
    </message>
    <portType name="Approval">
        <operation name="submitRequestForApproval">
            <input wsam:Action="http://www.travellinck.com/client/approval/service/Approval/submitRequestForApprovalRequest" message="tns:submitRequestForApproval"/>
            <output wsam:Action="http://www.travellinck.com/client/approval/service/Approval/submitRequestForApprovalResponse" message="tns:submitRequestForApprovalResponse"/>
            <fault message="tns:UnsupportedBusinessRequest" name="UnsupportedBusinessRequest" wsam:Action="http://www.travellinck.com/client/approval/service/Approval/submitRequestForApproval/Fault/UnsupportedBusinessRequest"/>
            <fault message="tns:UnsupportedSupportingDocument" name="UnsupportedSupportingDocument" wsam:Action="http://www.travellinck.com/client/approval/service/Approval/submitRequestForApproval/Fault/UnsupportedSupportingDocument"/>
        </operation>
        <operation name="getApprovalState">
            <input wsam:Action="http://www.travellinck.com/client/approval/service/Approval/getApprovalStateRequest" message="tns:getApprovalState"/>
            <output wsam:Action="http://www.travellinck.com/client/approval/service/Approval/getApprovalStateResponse" message="tns:getApprovalStateResponse"/>
            <fault message="tns:UnknownApprovalRequest" name="UnknownApprovalRequest" wsam:Action="http://www.travellinck.com/client/approval/service/Approval/getApprovalState/Fault/UnknownApprovalRequest"/>
        </operation>
        <operation name="withdrawRequestForApproval">
            <input wsam:Action="http://www.travellinck.com/client/approval/service/Approval/withdrawRequestForApprovalRequest" message="tns:withdrawRequestForApproval"/>
            <output wsam:Action="http://www.travellinck.com/client/approval/service/Approval/withdrawRequestForApprovalResponse" message="tns:withdrawRequestForApprovalResponse"/>
            <fault message="tns:InvalidRequest" name="InvalidRequest" wsam:Action="http://www.travellinck.com/client/approval/service/Approval/withdrawRequestForApproval/Fault/InvalidRequest"/>
            <fault message="tns:RequestNoLongerInProgress" name="RequestNoLongerInProgress" wsam:Action="http://www.travellinck.com/client/approval/service/Approval/withdrawRequestForApproval/Fault/RequestNoLongerInProgress"/>
            <fault message="tns:UnknownApprovalRequest" name="UnknownApprovalRequest" wsam:Action="http://www.travellinck.com/client/approval/service/Approval/withdrawRequestForApproval/Fault/UnknownApprovalRequest"/>
        </operation>
    </portType>
    <binding name="ApprovalPortBinding" type="tns:Approval">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
        <operation name="submitRequestForApproval">
            <soap:operation soapAction=""/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
            <fault name="UnsupportedBusinessRequest">
                <soap:fault name="UnsupportedBusinessRequest" use="literal"/>
            </fault>
            <fault name="UnsupportedSupportingDocument">
                <soap:fault name="UnsupportedSupportingDocument" use="literal"/>
            </fault>
        </operation>
        <operation name="getApprovalState">
            <soap:operation soapAction=""/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
            <fault name="UnknownApprovalRequest">
                <soap:fault name="UnknownApprovalRequest" use="literal"/>
            </fault>
        </operation>
        <operation name="withdrawRequestForApproval">
            <soap:operation soapAction=""/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
            <fault name="InvalidRequest">
                <soap:fault name="InvalidRequest" use="literal"/>
            </fault>
            <fault name="RequestNoLongerInProgress">
                <soap:fault name="RequestNoLongerInProgress" use="literal"/>
            </fault>
            <fault name="UnknownApprovalRequest">
                <soap:fault name="UnknownApprovalRequest" use="literal"/>
            </fault>
        </operation>
    </binding>
    <service name="ApprovalService">
        <port name="ApprovalPort" binding="tns:ApprovalPortBinding">
            <soap:address location="http://localhost:8088/approval"/>
        </port>
    </service>
</definitions>

这会生成模型类com.travellinck.client.approval包裹。

这是不正确的,我希望它按如下方式生成它们(这是从另一个使用 Java7 的应用程序获取的,该应用程序从相同的 wsdl 生成模型类):

正如您所看到的,这些类不是平面结构,而是根据 wsdl 定义位于它们的包中:

e.g.

    <xsd:schema>
        <xsd:import namespace="http://www.travellinck.com/client/approval/contact" schemaLocation="http://localhost:8088/approval?xsd=4"/>
    </xsd:schema>

就好像它忽略了/contact.


我通过使用 apache.cxf 解决了这个问题

        <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>3.3.7</version>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <phase>generate-sources</phase>
                    <configuration>
                        <sourceRoot>${project.basedir}/src/main/java</sourceRoot>
                        <wsdlOptions>
                            <wsdlOption>
                                <wsdl>${project.basedir}/src/main/resources/wsdl/approval.wsdl</wsdl>
                            </wsdlOption>
                        </wsdlOptions>
                    </configuration>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MavengeneratePackage用于从模式定义生成类的wsdl 的相关文章

随机推荐

  • 格式化 Carbon 日期实例

    我有一个返回以下日期时间的数组 item created at gt 2015 10 28 19 18 44 如何将日期更改为M d Y在 Laravel 中使用 Carbon 格式化 目前它返回错误 suborder payment da
  • 使用 Logback SizeAndTimeBasedFNATP 时如何限制每天的文件数量

    使用Logback SizeAndTimeBasedFNATP触发策略时 如何限制每天的文件数量 例如 在任何一天 我都不希望拥有超过 100MB 的日志 鉴于每个日志 在下面的示例中 为 20MB 我希望能够将每天的最大限制设置为 5 个
  • 如何在下拉列表中选择完整的日历月份和年份

    我有一个完整的日历 我需要在下拉列表中显示它的月份和年份 我知道这个问题已经被问过 但仍然没有得到解答 我是完整日历的新手 据我所知 它现在已更新 希望有一些最简单的方法来实现 而不是给它 gotodate 选项 我已经为日历创建了代码笔
  • 在 WebForms 应用程序中验证AntiForgeryToken

    我已经阅读了一些有关使用的内容ValidateAntiForgeryToken防止 XSRF CSRF 攻击 然而我所看到的似乎只与 MVC 有关 这些是我看过的文章 ValidateAntiForgeryToken 目的 解释和示例 ht
  • 禁用整个页面的 UpdateProgress

    我已经检查过这个解决方案 有没有办法禁用某些异步回发的 UpdateProgress https stackoverflow com questions 6299072 is there a way to disable updatepro
  • Jenkins 工作流程:如何获取或设置步骤 ID

    我们想引用 Jenkins 工作流程并行任务中的一个步骤 但似乎对于多个并行任务中的步骤创建的步骤 ID 是不确定的 对于输入步骤 可以手动指定步骤 ID 是否可以为 shell 步骤指定步骤 id 或查询步骤 id 目的是我们希望在并行任
  • 使用 jquery 和 canvas 从 html 元素 id 到另一个 html 元素绘制线条

    html和jquery是否可以只通过引用元素id来画一条线 我在文本中有一个重要的单词 并且想在该单词和描述它的图像之间画一条线 我已经看到可以使用画布在元素之间进行绘制 但它们的样式位置设置为绝对 由于我的元素是文本中的单词 因此我无法将
  • Windows 运行时组件中无法继承?

    设想 我的 Windows 运行时组件项目中有 3 个类 A B C class A public sealed class B A public sealed class C A 编译上面的代码 我得到以下内容error 可访问性不一致
  • 如何检查 pandas 数据框中的字符串值序列并输出后续内容

    我正在尝试检查数据框中 B B B 的顺序 d A A B C D B B B A A E F B B B F A A testdf pd DataFrame data d array seq pd Series B B B for i i
  • 为什么 cerr 输出比 cout 快?

    使用 cout 需要多一点时间来输出语句 这对我来说不太好 但是当使用 cerr 时 输出速度更快 为什么 只是想帮忙 cout gt 常规输出 控制台输出 cerr gt 错误输出 控制台错误 cout 是缓冲的 而 cerr 不是 因此
  • 在 MYSQL 搜索中使用 URL 参数

    我正在尝试为产品建立一个搜索页面 其中我有两个表产品和库存 我在产品中有我的产品详细信息 在库存中有库存详细信息 如颜色 尺寸 价格等 请提出一个解决方案 我真的陷入困境 我需要一个更好的解决方案来实现强大的设计 以下是所有必要的详细信息
  • Spring RMI 远程注解配置

    我已经为此寻找了一段时间 但似乎找不到答案 我正在使用 Spring RMI 远程处理 并且我想使用注释配置 这可能吗 据我所知 spring 没有基于标准注释的 RMI 支持 我碰到这个链接 http rpgkan blogspot in
  • 如何以编程方式向 contentPlaceHolder 添加内容?

    我有一个母版页 我的所有页面都继承它 对于格式设置 我想将一页与另一页不同的内容放置在 ContentPlaceHolder 中 现在 我怎样才能将所有内容插入其中 由于我计划用数据库中的内容填充 ContentPlaceHolder 我想
  • Spring 中的拦截器与方面?

    我正在尝试在 Spring 中使用拦截器 我想在某些方法上实现拦截器 以在调用这些方法时处理特定逻辑 我还想不使用 Web 框架 因为我倾向于使用 Spring 作为后端 而不使用任何标头 经过搜索 我认为 spring 方法称为方面 您能
  • git 仅从一个分支删除文件

    当我从一个分支删除文件时 它会从所有分支中删除 我能做些什么 使用 git 删除文件并保留该项目状态时 git commit 它只会在该提交及其子项中被删除 说 在该分支中 当将该分支合并到另一个分支时 该文件很可能会被删除 除非在另一个分
  • 如何导出共享案例类的属性

    我正在尝试在服务器和客户端之间共享案例类 我在两端都使用了 upickle 对象及其数据在两端都可以很好地使用 共享类 case class Foo var id Long var title Description 但是我需要在客户端导出
  • 在 iOS 设备上尝试时 Flutter 签名无效

    TL DR 编辑 2020 05 06 我的应用程序从 iOS 13 4 开始正确安装 但一段时间后应用程序在启动时崩溃 我必须重新安装它 我不知道为什么 也许是在 iOS 更新之后 另请参阅下面的答案 https stackoverflo
  • 如何从 python 3.5 脚本创建独立的可执行文件?

    大多数可用程序仅支持 python 版本 3 4 您可以使用py安装程序 http www pyinstaller org支持Python 3 5 要使用 pip 安装它 请在终端中执行 pip install pyinstaller 要制
  • Javascript 匹配在 IE 中不起作用

    我有以下代码 function rgb2hex rgb rgb rgb match rgb d s d s d return hex rgb 1 hex rgb 2 hex rgb 3 似乎在 FF 和 Chrome 中工作正常 IE 给出
  • MavengeneratePackage用于从模式定义生成类的wsdl

    我正在使用 Java14 和 Spring Boot 我需要基于 wsdl 生成一些 Java 类 然而 它正在生成 它将所有生成的类放在平面结构中 而不是放在 wsdl 中指定的包中 如果有人可以提供一些建议 我将不胜感激 更多细节 PO