Java 如何在不连接服务器的情况下使用maven cxc code gen从wsdl和xsd生成类
我想使用apachecxgmaven插件(WSLD2Java)生成java类,以生成web服务客户端 我有一个可以工作的配置,但是当我脱机或服务器不可用时,生成源会失败 错误是它无法创建wsdl定义:从“wsdl 位置“。。。操作超时 据我所知,该工具无法访问服务,因此无法获取XSD,从而导致失败 我有WSDL和XSD,如何配置Maven插件以使用文件的本地副本,而不是从服务器请求额外数据 编辑: 我通过直接编辑WSDL使其“正常工作”。我将XSD导入标记修改为>引用与WSDL位于同一文件夹中的XSD 编辑WSDL解决方案似乎很难,我更喜欢可以配置的东西。有什么想法吗 POM文件的设置如下所示减去人工制品id:Java 如何在不连接服务器的情况下使用maven cxc code gen从wsdl和xsd生成类,java,maven,xsd,cxf,cxf-codegen-plugin,Java,Maven,Xsd,Cxf,Cxf Codegen Plugin,我想使用apachecxgmaven插件(WSLD2Java)生成java类,以生成web服务客户端 我有一个可以工作的配置,但是当我脱机或服务器不可用时,生成源会失败 错误是它无法创建wsdl定义:从“wsdl 位置“。。。操作超时 据我所知,该工具无法访问服务,因此无法获取XSD,从而导致失败 我有WSDL和XSD,如何配置Maven插件以使用文件的本地副本,而不是从服务器请求额外数据 编辑: 我通过直接编辑WSDL使其“正常工作”。我将XSD导入标记修改为>引用与WSDL位于同一文件夹中的
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>2.7.10</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.16</version>
</dependency>
</dependencies>
<configuration>
<includes>
<include>**/*.class</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>java</executable>
<arguments>
<argument>-classpath</argument>
<classpath />
</arguments>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>CXF</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>2.7.10</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>2.7.10</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.7.10</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals><goal>wsdl2java</goal></goals>
<configuration>
<sourceRoot>${basedir}/target/generated-sources</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/wsdls/WebService.wsdl</wsdl>
<wsdlLocation>classpath:WebService.wsdl</wsdlLocation>
</wsdlOption>
</wsdlOptions>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
org.apache.cxf
cxf rt前端jaxrs
2.7.10
org.apache.maven.plugins
maven surefire插件
2.16
org.apache.maven.surefire
surefire-junit47
2.16
**/*.类
org.apache.maven.plugins
maven编译器插件
3.1
1.6
1.6
org.codehaus.mojo
execmaven插件
1.2.1
执行官
JAVA
-类路径
CXF
真的
org.apache.cxf
cxf rt前端jaxws
2.7.10
org.apache.cxf
cxf rt传输http
2.7.10
org.apache.cxf
cxf-codegen插件
2.7.10
生成源
wsdl2java
${basedir}/目标/生成的源
${basedir}/src/main/resources/wsdls/WebService.wsdl
类路径:WebService.wsdl
请显示完整的pom文件,可能您有项目链接(可能是github或其他)?嗨@khmarbaise我添加了pom,恐怕不太令人兴奋,这也是为什么它没有开始的部分原因。我注意到,通过编辑WSDL上的XSD导入标记以引用XSD文件,我“绕过”了这个问题。但我更喜欢可配置的解决方案。