gpt4 book ai didi

java - Maven Webservice 插件适用于安装,而不是部署

转载 作者:行者123 更新时间:2023-12-01 16:09:07 26 4
gpt4 key购买 nike

我有一个使用插件 jaxws-maven-plugin 的 Maven 模块。我已启动并运行网络服务,并且在浏览到 .../myWebservice?wsdl 时,我得到了 WSDL。没问题。

这在运行 wsimport 时也有效。 Maven目标通过:


<code><plugin></code><br/>
  <code><groupId></code>org.codehaus.mojo<code></groupId></code><br/>
  <code><artifactId></code>jaxws-maven-plugin<code></artifactId></code><br/>
  <code><executions></code><br/>
    <code><execution></code><br/>
      <code><goals></code><br/>
        <code><goal></code>wsimport<code></goal></code><br/>
      <code></goals></code><br/>
    <code></execution></code><br/>
  <code></executions></code><br/>
  <code><configuration></code><br/>
    <code><sourceDestDir></code>src/main/java<code></sourceDestDir></code><br/>
      <code><wsdlUrls></code><br/>
        <code><wsdlUrl></code><a href="http://host/f/soap/fWeb?wsdl" rel="noreferrer noopener nofollow">http://host/f/soap/fWeb?wsdl</a><code></wsdlUrl></code><br/>
      <code></wsdlUrls></code><br/>
  <code></configuration></code><br/>
<code></plugin></code><br/>

运行时

mvn clean install

一切都很好...但是,当我运行时它不起作用

mvn clean deploy

查看注销的参数,它们在两种情况下都是相同的:


[INFO] jaxws:wsimport args: [-s, D:\works2\f-service\src\main\java, -d, D:\works2\f-
service\target\classes, -Xnocompile, <a href="http://host/f/soap/fWeb?wsdl]" rel="noreferrer noopener nofollow">http://host/f/soap/fWeb?wsdl]</a>
parsing WSDL...

经过很长的超时后,感觉就像 http 超时,它失败并显示以下消息:


[ERROR] Unexpected end of file from server
Failed to read the WSDL document: <a href="http://host/f/soap/fWeb?wsdl" rel="noreferrer noopener nofollow">http://host/f/soap/fWeb?wsdl</a>, because<br/>
1) could not find the document;<br/>
2) the document could not be read;<br/>
3) the root element of the document is not wsdl:definitions.<br/>
ERROR failed.noservice=Could not find wsdl:service in the provided WSDL(s):
At least one WSDL with at least one service definition needs to be provided.
Failed to parse the WSDL.

这有点令人困惑,因为它花了这么长时间...事实上,WSDL 中没有提到完整的命名空间,根元素是 <definitions> ,不是<wsdl:definitions> ,但是为什么它可以与 mvn clean install 一起使用? ...?

谢谢!
拉乌尔

最佳答案

其实我也不知道为什么mvn clean installmvn clean deploy没有一致的结果。第一,wsimport绑定(bind)到generate-sources阶段并且在这两种情况下执行得更早。二、deploy紧接着 install 之后发生的阶段没有做更多的事情,如文档所示:

done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.

所以,实际上,我不知道将工件复制到存储库会如何影响 wsimport或者使构建在与 WSDL 相关的问题上失败。非常非常奇怪。也许运行 mvn -X clean deploy看看是否可以获得更多信息。

无论如何,我对 jaxws-maven-plugin 配置有一些建议。

第一个是src/main/java 中生成源。 IMO,生成的源应位于 target 下目录,因为您希望能够在 clean 期间删除它们。所以我建议使用默认值 ${project.build.directory}/jaxws/wsimport/java或类似${project.build.directory}/generated-sources/jaxws相反(这是生成内容的标准 Maven 模式)。但这是一个旁注,这不会解决您的问题:)

第二个建议是关于 <wsdlUrls>配置。而不是使用 <wsdlUrls> ,为什么不获取 WSDL(作为文件)并将其放入 src/wsdl 中(或者其他位置,在这种情况下,您必须使用 <wsdlLocation> 元素指定它)。这应该有助于解决超时问题。

关于java - Maven Webservice 插件适用于安装,而不是部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1868552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com