【发布时间】:2015-01-25 11:49:03
【问题描述】:
这似乎是一个荒谬的问题,有些人可能是无知的,但我是 J2EE 的新手,只是在学习。所以请帮助我理解。
我遇到了一个使用 Glassfish 4 创建 Web 服务的教程。我使用 @WebService 注释等成功创建了一个非常简单的 WS(Glassfish 基于注释生成了 WSDL 和测试器)。
我想尝试使用 WildFly(以前的 JBoss AS)。所以我在 Wildfly 中部署了相同的 Web 应用程序。但是服务器控制台报错说@WebService注解不能有我使用的一些属性(比如serviceName、bindingName等)。
有人能解释一下为什么当 J2EE 注释在另一个成熟的、最新的应用程序服务器上运行时,它不能在另一个服务器上运行吗?
【问题讨论】:
-
Appserver(可以)有相同标准的不同实现。
-
请记住,J2EE 就像 SQL 一样是一个规范,供应商通过各种实现在这些规范上展开竞争。一些 MySQL 在 Oracle 上的工作与 WildFly 和 GlassFish 不同。
-
这个类比不适用于@Namphibian; JAX-WS Specification(JSR-181) 明确规定了
@WebService注释必须支持的属性,特别是在非常基本的级别上实现跨平台兼容性。如果出于某种原因 JBoss 不支持这些属性(我严重怀疑),那么 WildFly 不符合 JSR-181。 OP 需要在此处发布确切的堆栈跟踪;这很可能是依赖管理问题 -
@kolossus 请注意,支持
@WebService注释。该操作明确指出,一些可选的附加功能似乎会导致问题。我很确定 JBoss 是合规的,但是其中一些教程是针对特定实现而不是标准的,这通常会导致混乱。不过我完全同意你的看法。 -
J2EE 已经过时,它是 Java EE。
标签: java web-services jakarta-ee glassfish wildfly