java - 在 wsimport 中使用 Maven 坐标样式情节

标签 java jaxb catalog maven-jaxb2-plugin

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

优点:

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

2)我可以利用JAXB2基础插件的强大功能,它似乎与maven-jaxb2-plugin (org.jvnet.jaxb2.maven2)配合得很好 并创建实例接口(interface)绑定(bind)。这与 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 坐标为目标的目录映射),但尚未成功。

最佳答案

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

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

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

关于java - 在 wsimport 中使用 Maven 坐标样式情节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17207357/

相关文章:

java - 在 web View 中删除特定域的所有 cookie

Java Postfix 增量运算符行为

java - WinScard 智能卡 dll 32 位 64 位兼容性

content-management-system - hybris 中目录和目录感知项目的概念是什么?

java - ReactiveSecurityContextHolder.getContext() 为空但@AuthenticationPrincipal 有效

java - 带有 Jersey : Passing form parameters to PUT method for updating a Resource 的 JAX-RS

java - jaxb 不生成具有基本整数的枚举

java - 如何在 JAXB 中指定对象引用数据类型

java - 将 XML 目录与内部使用 JAXP 的 Java 库一起使用

java - 具有相对路径的 Jaxb2 目录文件