java - websphere 网络部署 v8.5.5.0 在部署期间不扫描带注释的 Web 服务类

标签 java web-services websphere ejb-3.1

我有一个简单的ear文件,其中包含一个war文件,该文件有一个用WebService注释的本地ejb类。

@WebService
@Stateless
@LocalBean
public class TestWS {
    @WebMethod
    public int meaningoflife() {return 42;}
}

我的web.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         metadata-complete="false"
         version="3.0">

</web-app>

当我将此文件部署到我的测试服务器(与 RAD v9.0 一起打包的 Websphere Application Server v 8.5.5.0)时,将扫描并部署 Web 服务,我可以在配置屏幕中看到它们并正确访问 wsdl 文件。

但是,当我尝试将应用程序部署到 Websphere Application Server Network Deployment v 8.5.5.0 时,注释被扫描,并且我看不到 Web 服务提供者当我从 websphere 管理控制台单击应用程序时的配置设置,它的端点 URL 无法解析。

奇怪的是,扫描是在之前的(ear)部署中激活的,但是当我第二次将相同的ear文件放入服务器时,它也失败了

因为上面显示的 web.xml 是版本 3.0,所以应该进行扫描。而且由于 Websphere 8.5 完全兼容 java ee 6,因此它应该可以做到这一点。

在manifest.mf中将UseWSFEP61ScanPolicy设置为true不起作用,尽管它应该扫描类文件。

我花了几天时间试图解决这个问题,并且希望任何有 websphere 知识的人为我指出一个可能的方向

更新:元数据完整属性在设置中肯定是错误的,我还确保在部署中未选中它。

最佳答案

检查 metadata-complete attribute在您部署的应用程序中被禁用。

您可以从 WAS ND 控制台执行此操作:

企业应用程序> 您的应用程序> 模块元数据> 取消选中元数据完整属性复选框,同步使用节点并重新启动您的应用程序。

如果这不起作用,请卸载/重新安装应用程序,但请注意在部署期间将元数据完整设置为禁用。

关于java - websphere 网络部署 v8.5.5.0 在部署期间不扫描带注释的 Web 服务类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21843595/

相关文章:

java - 无法使用命令行运行javafx项目

java - 环境特定的 Eureka 属性未加载

wcf - 在 IIS 上通过 WCF 服务启用 HTTPS

java - Thrift 服务与 RESTful 服务哪个更好?

java - 如何让用户从联系人中选择电话号码,然后获取电话号码、名字和姓氏

java - OSGi ClassNotFoundException WSServletContextListener

PHP SoapClient 在 WSDL 模式下重新映射 SoapAction?

java - Websphere 8.5 上的 SSL handshake_failure(在 Tomcat 上工作)

java - Jersey URISchemeScanner

java - 无法从 JDK 6 下的 JMS 客户端连接到 WAS 6.0 队列