将jaxws-maven-plugin与-clientjar选项一起使用

彼得

我正在使用jaxws-maven-plugin为Web服务使用者应用程序执行wsimport。我正在使用-clientjarwsimport选项,选项是2010年随JAX-WS 2.2.2 RI引入的。之所以这样做,是因为我想将WSDL捆绑在jar中。

我在制作pom时没有问题。对于插件配置,我可以执行以下操作:

<configuration>
    ...
    <args>
        <arg>-clientjar</arg>
        <arg>bundled-wsdl.jar</arg>
    </args>
</configuration>

当我执行我创建的jar的构建时,可以将其称为myapp.jar,其中包含文件bundled-wsdl.jarbundled-wsdl.jar的META-INF目录中,可以找到wsdl和xsd,就像我喜欢的一样。我对使用该-clientjar选项产生的Java代码也很满意到目前为止,一切都很好。

但这东西应该放在myapp.jar的META-INF中,对不对?它位于bundled-wsdl.jarMETA-INF中的事实并没有太大帮助。

有趣的是,实际上我确实在myapp.jar的META-INF中获得了一个wsdl文件,这使得该应用程序实际上可以正常工作。它怎么到达那里我不知道。而且xsd文件不存在,仅在bundled-wsdl.jar的META-INF中。

基本问题是如何-clientjar在Maven项目中正确使用wsimport选项?

Java 1.7.0_45。

彼得

-clientjar恕我直言,选项的确记录不充分。我认为这是有效的:

使用该-clientjar <jarfile>选项时,发生了件事:

  1. 您将<jarfile>-dwsimport工具参数所指向的目录中生成一个其中将包含WSDL和任何相关的XSD文件。这个小捆绑包根本不会用于任何东西。如果您想利用它,完全取决于您。但是在您看到下面的(2)之前。我不知道除了将其作为文档形式外,还可以使用此jarfile来做什么。
  2. 您将获得WSDL的副本,该副本放入名为的文件中META-INF/wsdl/<svcname>.wsdl生成的类将在no-arg代理构造函数中使用此文件。因此,如果您使用该-clientjar选项请求捆绑的WSDL文件,则将实际使用该文件
  3. 生成的代码将发生更改,从而wsdlLocation,如果您在类上使用默认的no-arg构造函数@WebServiceClient,则将是捆绑的WSDL(来自(2))的代码,而不是远程WSDL的代码。的确,如果您-wsdllocation在命令行上与一起使用,-clientjar则您指定的任何内容都-wsdllocation将无效,因为-clientjar它将具有优先权。

因此,我们必须关注(2)和(3),因为这是实际使用的唯一代码...至少如果您原样使用生成的代码。

有趣的是,(2)的结果只是一个WSDL文件。该文件可能具有指向XSD文件的嵌入式链接,但据我所知,永远不会遵循该链接。原因是,当我们说Web服务使用者在运行时需要WSDL时,实际上只需要WSDL本身,而不需要模式。模式已“硬编码”到使用者中,无法在运行时进行更改。因此,没有理由在运行时读取架构信息。(这是我的理解)

关于(2)包含的WSDL的第二点注意事项:它实际上只是原始WSDL的副本,因此它可能没有所需的端点。实际上,在大多数情况下不会。这意味着在这种情况下,您需要自己设置端点:

// Use no-arg constructor. Means it uses the WSDL bundled into the 
// META-INF/wsdl directory rather than trying to retrieve WSDL over the
// network.
service = new HelloSvc_Service();
hello = service.getHelloSvcPort();

// Since we're using a bundled WSDL the web service URL cannot 
// be derived from that (it would be wrong!). So we have to set
// it explicitly.
((BindingProvider) hello).getRequestContext().put(
                BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
                "http://myhellowebservice-address");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将jaxws-maven-plugin与-clientjar选项一起使用

来自分类Dev

将XJB与jaxb2-maven-plugin一起使用

来自分类Dev

将checkstyle / google_checks.xml与maven-checkstyle-plugin一起使用时出错

来自分类Dev

maven-jaxws-tools-plugin错误:ClassNotFoundException

来自分类Dev

无法在JDK8上使用org.jvnet.jax-ws-commons.jaxws-maven-plugin

来自分类Dev

将maven JavaDoc与合理的doclint参数一起使用

来自分类Dev

将Maven与Spring Boot一起使用-parentID

来自分类Dev

jaxb2-maven-plugin:schemagen是否可与JDK8一起使用?

来自分类Dev

将自定义git命令与buildnumber-maven-plugin一起使用

来自分类Dev

jaxb2-maven-plugin:schemagen是否可以与JDK8一起使用?

来自分类Dev

maven jaxws-maven-plugin不添加生成的打包构建路径

来自分类Dev

使用Maven Maven-Mule-REST-Plugin

来自分类Dev

使用Maven Maven-Mule-REST-Plugin

来自分类Dev

将Maven与Tomcat一起使用时,将第3方库放在哪里?

来自分类Dev

在将Maven与Tomcat一起使用时,我应该指定用户吗?

来自分类Dev

将休眠与tomee和maven一起使用时发生异常

来自分类Dev

如何将Maven与Slack集成在一起?

来自分类Dev

将cqlsh与-f选项一起使用

来自分类Dev

将ifeq与多个选项一起使用

来自分类Dev

将argparse与指定的可接受选项一起使用

来自分类Dev

将 `date` 与 `-d` / `--date=` 选项一起使用

来自分类Dev

如何将选项属性与 SDWebImagePrefetch 一起使用?

来自分类Dev

使用MOJO build-helper-maven-plugin将更多源文件夹添加到MAVEN

来自分类Dev

sass-maven-plugin 使用 add_import_path 选项

来自分类Dev

如何将tools.jar包含到uberjar中(使用maven-shade-plugin)?

来自分类Dev

使用Maven和cxf-codegen-plugin将JAR中的WSDL客户端打包

来自分类Dev

使用Maven和cxf-codegen-plugin将JAR中的WSDL客户端打包

来自分类Dev

maven-assembly-plugin:如何使用appendAssemblyId

来自分类Dev

使用Java 8的cobertura-maven-plugin

Related 相关文章

  1. 1

    将jaxws-maven-plugin与-clientjar选项一起使用

  2. 2

    将XJB与jaxb2-maven-plugin一起使用

  3. 3

    将checkstyle / google_checks.xml与maven-checkstyle-plugin一起使用时出错

  4. 4

    maven-jaxws-tools-plugin错误:ClassNotFoundException

  5. 5

    无法在JDK8上使用org.jvnet.jax-ws-commons.jaxws-maven-plugin

  6. 6

    将maven JavaDoc与合理的doclint参数一起使用

  7. 7

    将Maven与Spring Boot一起使用-parentID

  8. 8

    jaxb2-maven-plugin:schemagen是否可与JDK8一起使用?

  9. 9

    将自定义git命令与buildnumber-maven-plugin一起使用

  10. 10

    jaxb2-maven-plugin:schemagen是否可以与JDK8一起使用?

  11. 11

    maven jaxws-maven-plugin不添加生成的打包构建路径

  12. 12

    使用Maven Maven-Mule-REST-Plugin

  13. 13

    使用Maven Maven-Mule-REST-Plugin

  14. 14

    将Maven与Tomcat一起使用时,将第3方库放在哪里?

  15. 15

    在将Maven与Tomcat一起使用时,我应该指定用户吗?

  16. 16

    将休眠与tomee和maven一起使用时发生异常

  17. 17

    如何将Maven与Slack集成在一起?

  18. 18

    将cqlsh与-f选项一起使用

  19. 19

    将ifeq与多个选项一起使用

  20. 20

    将argparse与指定的可接受选项一起使用

  21. 21

    将 `date` 与 `-d` / `--date=` 选项一起使用

  22. 22

    如何将选项属性与 SDWebImagePrefetch 一起使用?

  23. 23

    使用MOJO build-helper-maven-plugin将更多源文件夹添加到MAVEN

  24. 24

    sass-maven-plugin 使用 add_import_path 选项

  25. 25

    如何将tools.jar包含到uberjar中(使用maven-shade-plugin)?

  26. 26

    使用Maven和cxf-codegen-plugin将JAR中的WSDL客户端打包

  27. 27

    使用Maven和cxf-codegen-plugin将JAR中的WSDL客户端打包

  28. 28

    maven-assembly-plugin:如何使用appendAssemblyId

  29. 29

    使用Java 8的cobertura-maven-plugin

热门标签

归档