【问题标题】:Deploying a SOAP Webservice implementation from the module directory in JBoss Wildfly从 JBoss Wildfly 的模块目录部署 SOAP Webservice 实现
【发布时间】:2015-01-13 21:38:47
【问题描述】:

我在部署 SOAP Web 服务实现时遇到问题,其中类文件位于 Wildfly 模块中。该模块是 Web 应用程序可以访问的全局模块(我知道 b/c 它能够访问存储在模块中的其他类)并且不会发生部署错误。但是,我也从未像在正常情况下那样收到说明“添加服务端点元数据”的日志,并且从未生成 wsdl。

作为参考,我在同一个容器中部署了 3 个其他 SOAP Web 服务,但它们的所有实现类都存在于相应 Web 应用程序中的 jar 中。将 Web 服务实现存储在模块中是否是一个已知问题?由于我不能透露的原因,这应该不是问题。任何帮助将不胜感激。

【问题讨论】:

  • 您正在为模块内的 Web 服务实现使用注解?
  • 是的,我正在使用注释 WebService 和 WebMethod,并预定义了 targetnamespace 和服务名称。从字面上看,如果我将 WebServiceA 放入 WebAppB 的 lib 目录中的 jar 中,一切正常。但是,如果我将 WebServiceA 的 jar 移动到 jboss 模块,它不会部署。没有显示错误,但我可以保证模块已正确加载,因为我可以访问 jar 中的其他类。
  • 好的,尝试在MANIFEST.MF 中添加类似Dependencies: org.foo annotations 的内容,其中org.foo 是您的模块。见docs.jboss.org/author/display/JBWS/…
  • 谢谢,但正如我所说,模块已经正确配置,包括对清单的添加引用。如果不是,我将无法访问 jar 中引用的其他类,并且会引发运行时错误。

标签: java soap jboss web.xml wildfly


【解决方案1】:

在与@federico-sierra 交谈后,我们发现问题出在 Web 应用程序的 /META-INF/MANFIEST.MF 中的依赖声明上。

我的原始清单文件如下所示:

Manifest-Version: 1.0
Dependencies: org.webservice.impl.library, org.apache.log4j
Built-By: usera
Build-Jdk: 1.7.0_55
Created-By: Apache Maven 3.2.2
Archiver-Version: Plexus Archive

当依赖行应该在我的 web 服务类路径旁边包含“注释”时:

Dependencies: org.webservice.impl.library annotations, org.apache.log4j

此外,在进行此更改后,我的 webservice 实现 jar 需要使用 maven jandex 插件重新编译,以便在 jar 中生成所需的 jandex.idx。 maven 插件描述位于:https://github.com/wildfly/jandex-maven-plugin。注意:如果需要,可以使用 ANT 插件。

【讨论】:

    猜你喜欢
    • 2014-04-13
    • 1970-01-01
    • 2015-04-30
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 2011-10-26
    相关资源
    最近更新 更多