当前位置: 首页 > 面试题库 >

从WSDL使用jaxb2-maven-plugin生成类

韶浩博
2023-03-14
问题内容

我在配置时无法jaxb2-maven-plugin从WSDL和都存在于同一标准目录中的多个XSD文件生成Java类的问题src/main/xsd

如何在内联XSD中使用jaxb2 maven插件?仅在答案正确地建议使用wsdl插件配置中的参数这一点上相关,而该问题确实与内联XSD有关,而我的XSD是外部的。

插件目标参数在此处列出。

我的插件配置是:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <version>1.5</version>
    <executions>
        <execution>
            <id>xjc</id>
            <goals>
                <goal>xjc</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <packageName>com.x.y.model</packageName>
        <wsdl>true</wsdl>
    </configuration>
</plugin>

我正在用进行测试mvn -X clean jaxb2:xjc但插件忽略.wsdl了调试输出中看到的

[DEBUG] accept false for file c:\projects\foo\src\main\xsd\service.wsdl
[DEBUG] accept true for file c:\projects\foo\src\main\xsd\datatypes.xsd
[DEBUG] accept true for file c:\projects\foo\src\main\xsd\more-datatypes.xsd

问题答案:

通过检查传递给JAXB XJC的参数的Maven调试输出(以及一些试验和错误),我发现我需要为插件提供2个更多的配置参数。

这将停止插件扫描XSD文件,而仅将其.wsdl用作源。例如,XSD文件作为<xsd:includeschemaLocation="datatypes.xsd"/>指令包含在WSDL中,这些指令在本地解析,导致WSDL和XSD中的所有类型都生成为Java类。

对我有用的配置部分是:

<configuration>
    <packageName>com.x.y.model</packageName>
    <wsdl>true</wsdl>
    <xmlschema>false</xmlschema>
    <schemaFiles>service.wsdl</schemaFiles>
</configuration>

没有以下<xmlschema>false</xmlschema>错误:

org.apache.maven.lifecycle.LifecycleExecutionException:无法在项目foo上执行目标org.codehaus.mojo:jaxb2-maven-
plugin:1.5:xjc(default-cli):无法处理架构:/ c:/ projects / foo
/src/main/xsd/service.wsdl



 类似资料:
  • 我正在尝试使用pluggin从wsdl创建Java类。 在版本1.5中,这段代码来自WSDL中的Generate classes With jaxb2 maven plugin: 但当使用插件版本2.3.1时,我会出现以下错误: 有人知道如何在这个新的插件版本中使用WSDL文件吗?

  • 我在配置以从WSDL和多个XSD文件生成Java类时遇到问题,这些文件都存在于同一个标准目录。 如何将jaxb2 maven插件与内联XSD一起使用?只因为答案正确地建议在插件配置中使用参数,但这个问题实际上与内联XSD有关,而我的XSD是外部的。 这里列出了插件目标参数。 我的插件配置是: 我正在用

  • 我试图通过使用WSDL URL生成一个模式,但失败了,得到了这个错误代码: 目标组织的执行默认值。jvnet。jaxb2。maven2:maven-jaxb2-plugin:0.12.3:generate failed:plugin org。jvnet。jaxb2。maven2:maven-jaxb2-plugin:0.12.3或其依赖项之一无法解析:无法解析以下工件:org。jvnet。jaxb

  • 我对Jaxb和这个maven-jaxb2插件非常陌生 这是我的. xsd文件: 这是我的。xjb文件: 当它生成时,它给出的java类有点像: 但是我不想为用户和用户列表重复相同的代码,我可以通过注释或定义正则表达式来做什么。请建议一些方法。 我只是想知道这段代码要写什么 因此,当它创建用户类时,它会显示@xmlRootElement(name='user'),而其他类的@xmlRootEleme

  • 问题内容: 我想将我的Maven2构建文件切换到gradle。使用gradle从WSDL + XSD生成Java类似乎没有进一步的文档记录,对此没有gradle插件。我将以下配置与maven一起使用,并搜索等效的gradle。 问题答案: 我解决了…

  • 我对jaxb2 maven插件版本2.4有以下配置 但是当我运行时,不会生成任何类。 我能忽略什么? 我已经在这里粘贴了一个wsdl 编辑 由于提到这可能是一个可能的重复,我将插件降级为版本并将配置更改为以下,仍然没有生成类。 完整的pom在这里,因为站点抱怨代码太多 清洗后,它最终可与版本一起使用。为什么版本不起作用?