【问题标题】:Specify the wsdl url in pom.xml and have the wsdl jar downloaded to local machine在 pom.xml 中指定 wsdl url 并将 wsdl jar 下载到本地机器
【发布时间】:2013-10-18 11:47:08
【问题描述】:

这是一个wsdl服务链接:http://www.webservicemart.com/uszip.asmx?WSDL

如果我运行以下命令:

wsimport -s src -d bin http://www.webservicemart.com/uszip.asmx?WSDL

此命令在 /src 目录中生成 Java 源代码,并在 /bin 目录中相对于发出命令的目录生成编译的 .class 文件。这些生成的类可用于访问远程 Web 服务。

通过发出以下命令,创建了一个 jar 文件 zipws.jar,其中包含 com.webservicemart.ws 包中的类:

  • cd /bin
  • jar cvf zipws.jar com

我可以将此jar添加到我在java项目中的构建路径中并使用它。

有没有一种方法可以让我使用 maven2 创建一个 java 项目并在 POM.xml 中指定这个 wsdl url 并将 jars 直接下载到我的本地机器中? 如果您需要更多信息,请告诉我。

【问题讨论】:

    标签: java web-services maven wsdl wsdl2java


    【解决方案1】:

    您可以使用jaxws-maven-plugin:

    <?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.webservicemart.ws</groupId>
      <artifactId>uszip</artifactId>
      <version>1.0-SNAPSHOT</version>
      <dependencies>
        <dependency>
          <groupId>com.sun.xml.ws</groupId>
          <artifactId>jaxws-rt</artifactId>
          <version>2.2.8</version>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.jvnet.jax-ws-commons</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <version>2.3</version>
            <executions>
              <execution>
                <goals>
                  <goal>wsimport</goal>
                </goals>
                <configuration>
                  <wsdlUrls>
                    <wsdlUrl>http://www.webservicemart.com/uszip.asmx?WSDL</wsdlUrl>
                  </wsdlUrls>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </project>
    

    wsdlUrls 参数允许您指定 WSDL 文件的位置。与手动运行wsimport 一样,该文件会在构建项目时自动下载。

    【讨论】:

    • 感谢您的回复。这会为我下载 .java 文件。有没有办法只下载jar文件?
    • @Mike 当您运行mvn clean package 时,maven 会下载 wsdl,生成 .java 源文件,将它们编译为类文件并将它们打包成 .jar 文件。您将在目标文件夹中找到该 jar 文件,名为uszip-1.0-SNAPSHOT.jar
    • 只有 .java 源文件被下载并编译并存储在目标文件夹中,而不是作为 jar 文件。有没有办法只下载 jar 文件(没有源)?这也将在目标文件夹中生成 - 我可以在其他位置更改此目录(可能是 .m2/repository/{myfoldername})
    • 您可以运行mvn install,这会将jar 文件安装到您的本地存储库中。在我的示例中,它将以 .m2/repository/com/webservicemart/ws/uszip/1.0-SNAPSHOT/uszip-1.0-SNAPSHOT.jar 结尾
    猜你喜欢
    • 2016-03-19
    • 1970-01-01
    • 2010-10-20
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多