【问题标题】:using maven coordinate style episodes in wsimport在 wsimport 中使用 maven 坐标样式情节
【发布时间】:2013-06-20 07:09:40
【问题描述】:

我正在构建(多个)复杂的webservice,其基础类型为XSD,来自各种标准(GML, SWE, XLINK, etc)。现在,我想将编译分解为更多步骤,最好是针对我正在使用的每个标准进行一个步骤。

优点:

1) 我可以添加创建工具库,我可以在每个标准的所有 Web 服务中重复使用这些工具库。

2) 我可以利用JAXB2 basics plugin 的强大功能,它似乎与maven-jaxb2-plugin (org.jvnet.jaxb2.maven2) 配合得非常好,并创建了例如接口绑定。这与 jaxws-maven-plugin 插件形成对比。

最后一步是使用org.jvnet.jax-ws-commons:maven-jaxb2-plugin 创建我可以在 EJB 中实现(或作为客户端调用)的实际 Web 服务。

现在,org.jvnet.jaxb2.maven2:maven-jaxb2-plugin 插件允许我通过它们的 maven 坐标来引用剧集,作为它的一部分,如下所示:

<episodes>
    <episode>
        <groupId>org.example</groupId>
        <artifactId>jaxb2-basics-test-episodes-a</artifactId>
    </episode>
</episodes>

如何通过org.jvnet.jax-ws-commons:maven-jaxb2-plugin 做到这一点?我搜索了很多,并进行了这样的实验:

<plugin>
    <groupId>org.jvnet.jax-ws-commons</groupId>
    <artifactId>>maven-jaxb2-plugin</artifactId>
    <version>2.1</version>
    <executions>
        <execution>
            <goals>
                <goal>wsimport</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <wsdlDirectory>src/main/resources/</wsdlDirectory>
        <wsdlFiles>
            <wsdlFile>example.wsdl</wsdlFile>
        </wsdlFiles>                    
        <xjcArgs>
            <xjcArg>-b</xjcArg>
            <xjcArg>../cpt-xsd/target/generated-sources/xjc/META-INF/sun-jaxb.episode</xjcArg>
        </xjcArgs>                  
        <verbose>true</verbose>
    </configuration>
</plugin>

从(已编译的)JAXB 依赖项目的目标目录中获取剧集文件。这有时甚至会在 maven 构建中失败(为什么我还没有弄清楚)。

我尝试使用目录文件进行映射,但是(我想我在某处看到了以 maven 坐标为目标的目录映射),但尚未成功。

【问题讨论】:

    标签: java jaxb catalog maven-jaxb2-plugin


    【解决方案1】:

    您知道OGC Schemas and Tools Project 吗? (免责声明:我是作者。)

    现在,回答您的问题。我的猜测是org.jvnet.jax-ws-commons:maven-jaxb2-plugin 不支持您所说的“Maven 坐标”。这是我专门为 org.jvnet.jaxb2.maven2:maven-jaxb2-plugin 实现的功能(免责声明:我是作者)。

    另一方面,剧集文件只不过是一个 JAXB 绑定文件。因此,您可以简单地从 JAR 工件中提取此文件(例如使用 maven-dependency-plugin),然后或多或少地像您已经这样做一样包含它。只是不要指向其他模块中的目录,这是不可靠的。

    【讨论】:

    • 谢谢。我知道.. 不久前发现了这个。顺便说一句,谢谢!我确实需要一些特定的绑定(例如 measuretype 到 bigdecimal),所以我选择了自己的实现(从你的演变而来)。不久前,我采用了类似的方法。我设法将每个单独的 OGC 项目(和 Xlink)分解为单独的模块,每个模块包含:XSD、目录、extCatalog(包含您的 mvn-coordinate-binding 样式)、生成的情节。所以我可以将它们用作依赖项(并为它们开发特定的工具)。
    • 我喜欢这个功能。所以我也希望将它用于 JAXWS 插件。 (也许他们可以窃取/委托给您的插件。我在 Jira 上发布了一个问题请求,但再也没有收到过它的消息。顺便说一下,Xlink 有一个有趣的 JAXB 问题(与情节编译结合使用时)。如果你愿意,我可以和你分享我的 OGC 项目
    • 或者我应该在maven-jaxb2-plugin 中实现wsimport 目标。如果您的绑定通常有意义,那么我可以将它们超越到主项目中。请联系我valikov-at-gmx-dot-net。
    猜你喜欢
    • 2018-07-03
    • 2013-01-15
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    相关资源
    最近更新 更多