无法从本地 WSDL 文件生成 SOAP 客户端文件

Tra*_*vis 2 xjc maven-jaxb2-plugin

我在这方面做了很多阅读。看起来非常的正直。如果您看到 pom 文件,您可以看到它不是从远程 URL 创建类文件,而是该文件必须是项目的一部分。注释掉的配置有效...找到 WSDL 并创建正确的文件。当我尝试在本地驱动它时,没有任何效果。我展示的版本是我尝试使用 maven ${project.basedir} 变量的地方。我尝试过“/src/main/java”、“src/main/java”,对路径进行硬编码。我该怎么做呢?我已经尝试了我看到的所有示例。这是我的 pom.xml

    <?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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mycompany</groupId>
    <artifactId>abc</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>abc</name>
    <description>consume soap</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
        <relativePath/>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.ws</groupId>
            <artifactId>spring-ws-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.jvnet.jaxb2.maven2</groupId>
                    <artifactId>maven-jaxb2-plugin</artifactId>
                    <version>0.12.3</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>generate</goal>
                            </goals>
                        </execution>
                    </executions>

                <configuration>
                    <packageName>com.mycompany.abc.domain</packageName>
                    <wsdl>true</wsdl>
                    <xmlschema>false</xmlschema>
                    <schemaFiles>abc.wsdl</schemaFiles>
                    <schemaDirectory>${project.basedir}/src/main/resources</schemaDirectory>
                    <outputDirectory>${project.basedir}/src/main/java</outputDirectory>
                    <clearOutputDir>true</clearOutputDir>
                </configuration>

    <!-- THIS CONFIGURATION WORKS...IF IT COMES FROM A REMOTE PLACE
                    <configuration>
                        <schemaLanguage>WSDL</schemaLanguage>
                        <generatePackage>com.mycompany.abc.domain</generatePackage>
                        <schemas>
                            <schema>
                                <url>http://www.webservicex.com/stockquote.asmx?WSDL</url>
                            </schema>
                        </schemas>
                        <clearOutputDir>false</clearOutputDir>
                    </configuration>
    -->

                </plugin>
            </plugins>
        </pluginManagement>
    </build>

</project>
Run Code Online (Sandbox Code Playgroud)

Tra*_*vis 10

经过多次试验,这是我的解决方案。仍然不确定为什么之前的迭代不起作用......也许我正在穿越 v1 和 v2?

<configuration>
    <generatePackage>com.ezcorp.peoplesoft.ws</generatePackage>
    <schemaDirectory>${project.basedir}/src/main/resources/wsdl</schemaDirectory>
    <schemaIncludes>
        <include>*.wsdl</include>
    </schemaIncludes>
    <clearOutputDir>true</clearOutputDir>
</configuration>
Run Code Online (Sandbox Code Playgroud)