我在配置jaxb2-maven插件
以从WSDL和多个XSD文件生成Java类时遇到问题,这些文件都存在于同一个标准目录src/main/XSD
。
如何将jaxb2 maven插件与内联XSD一起使用?只因为答案正确地建议在插件配置中使用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
您可以在配置中使用以下代码:
<configuration>
<!-- Package to store the generated file -->
<packageName>com.example.demo.wsdl</packageName>
<!-- Treat the input as WSDL -->
<wsdl>true</wsdl>
<!-- Input is not XML schema -->
<xmlschema>false</xmlschema>
<!-- The WSDL file that you saved earlier -->
<schemaFiles>horarios.wsdl</schemaFiles>
<!-- The location of the WSDL file -->
<schemaDirectory>${project.basedir}/src/main/resources</schemaDirectory>
<!-- The output directory to store the generated Java files -->
<outputDirectory>${project.basedir}/src/main/java</outputDirectory>
<!-- Don't clear output directory on each run -->
<clearOutputDir>false</clearOutputDir>
</configuration>
如果您正在生成wsdl和xsd,请尝试添加不同的执行配置:它可能没有相同的schemaDirectory
,或者插件在第二次执行时不会成功运行,因为它基于此变量缓存执行。我建议这样做
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>generate-sri-facturas</id>
<phase>generate-sources</phase>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/sri</outputDirectory>
<packageName>${commonsource.packageName}</packageName>
<schemaDirectory>src/main/resources/schema/xsd</schemaDirectory>
<schemaFiles>factura_v1.1.0.xsd</schemaFiles>
</configuration>
</execution>
<execution>
<id>generate-sri-autorizacion-comprobantes</id>
<phase>generate-sources</phase>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/sri/autorizacion</outputDirectory>
<packageName>${commonsource.packageName}.autorizacion</packageName>
<wsdl>true</wsdl>
<xmlschema>false</xmlschema>
<schemaDirectory>src/main/resources/schema/wsdl</schemaDirectory>
<schemaFiles>AutorizacionComprobantes.wsdl</schemaFiles>
</configuration>
</execution>
</executions>
</plugin>
我创建了一个xsd
和一个wsdl
文件夹来分离配置。
通过检查传递给JAXB XJC的参数的Maven调试输出(以及一些尝试和错误),我发现我需要为插件提供另外两个配置参数。
这会停止插件对XSD文件的扫描,只使用。wsdl
作为源代码。XSD文件作为
为我工作的配置部分是:
<configuration>
<packageName>com.x.y.model</packageName>
<wsdl>true</wsdl>
<xmlschema>false</xmlschema>
<schemaFiles>service.wsdl</schemaFiles>
</configuration>
没有
组织。阿帕奇。专家生命周期。LifecycleExecutionException:无法执行目标组织。科德豪斯。mojo:jaxb2-maven plugin:1.5:xjc(默认cli)在project foo:上无法处理模式:/c:/projects/foo/src/main/xsd/service。wsdl
我对jaxb2 maven插件版本2.4有以下配置 但是当我运行时,不会生成任何类。 我能忽略什么? 我已经在这里粘贴了一个wsdl 编辑 由于提到这可能是一个可能的重复,我将插件降级为版本并将配置更改为以下,仍然没有生成类。 完整的pom在这里,因为站点抱怨代码太多 清洗后,它最终可与版本一起使用。为什么版本不起作用?
问题内容: 我在配置时无法从WSDL和都存在于同一标准目录中的多个XSD文件生成Java类的问题。 如何在内联XSD中使用jaxb2 maven插件?仅在答案正确地建议使用插件配置中的参数这一点上相关,而该问题确实与内联XSD有关,而我的XSD是外部的。 插件目标参数在此处列出。 我的插件配置是: 我正在用进行测试,但插件忽略了调试输出中看到的 问题答案: 通过检查传递给JAXB XJC的参数的M
问题内容: 我正在努力开发一个android应用程序。我需要使用网络服务。我有一个wsdl文件,但我想将其转换为java,以便可以在Java程序中使用其功能。有什么方法可以将wsdl文件转换为Java? 问题答案: 是的,您可以使用: WSDL2Java Eclipse插件 有了这些,您只需提供wsdl,就会自动为您生成Java类的客户端。
问题内容: 我有一个带有“逻辑”类的包(例如CheckAuthenticationDataLogic.java,GetVocabulariesLogic.java)。还有另一个类- ApiService.java用于生成wsdl。ApiService.java充满了这样的方法: 如您所见,它只是一个代理方法…所以我想避免做两次相同的工作,而无需编写ApiService.java就直接从逻辑类生成W
我有一个JAX-WS注释的Web服务,当我将其部署到WildFly 8.1.0 Final中时,我有如下内容: 当我想要这样的东西时: 因此,基本上,我希望WildFly/JAX-WS将一些类型放在一个单独的XSD模式文件中,而不是仅仅在WSDL文件中显示它们。 我可以通过一些注释或一些配置文件来执行此操作吗?
有没有什么方法可以从wsdl生成xsd。任何链接或工具也可以。最简单的方法是什么?