我有一个 xml 模式 (xsd) 文件,它位于一个 jar 文件中,该文件将包含在运行时类路径中。在我的 Wsdl 中,我需要通过在 jar 文件中提供位置来导入模式。

我尝试使用 XML 目录,但我使用的服务器 (websphere) 无法解析 xml 目录引用。

最佳答案

我们遇到了一个类似的问题,其中包含 XSD 的 JAR 被添加到类路径中,我们不得不使用 schemaLocation 从 WSDL 引用它。
我们的项目是基于maven的,所以我们使用maven-dependency-plugin的解包目标,在编译前将文件下载到resources文件夹。

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
    <execution>
        <id>unpack</id>
        <phase>generate-sources</phase>
        <goals>
            <goal>unpack</goal>
        </goals>
        <configuration>
            <artifactItems>
                <artifactItem>
                    <groupId>group</groupId>
                    <artifactId>artifact</artifactId>
                    <version>${version}</version>
                    <outputDirectory>${basedir}/src/main/resources/xsd</outputDirectory>
                    <includes>ToDownload.xsd</includes>
                </artifactItem>
            </artifactItems>
        </configuration>
    </execution>
</executions>


这导致 xsd 被下载到名为 xsd 的文件夹中的资源目录。
在 WSDL 中 schemaLocation="xsd/ToDownload.xsd".这确保在编译期间 WSDL 将引用已下载并在本地可用的 XSD。

关于xml - 如何在 jar 文件中引用 xsd schemalocation?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17691746/

10-15 02:11