Glassfish 4 Web Profile - 无法访问远程EJB

时间:2014-04-21 00:15:34

标签: jndi glassfish-4

我无法使用jndi查找在Glassfish 3 web-profile上运行的Web应用程序中访问应用程序服务器的远程EJB bean。

使用我们的Web应用程序的完整配置文件,甚至使用控制台应用程序进行测试,我们都可以轻松访问jndi远程bean。

例外:

Unable to acquire SerialContextProvider for SerialContext

我们希望让我们的网络服务器更轻量级。

1 个答案:

答案 0 :(得分:1)

Glassfish的Web Profile版本仅包含EJB Lite,它不支持@Remote接口。您需要支持完整EJB 3规范的Full Profile

来自oracle docs

  

GlassFishTM服务器的Web配置文件支持EJB 3.1 Lite   规范,允许Web应用程序中的企业bean,   等功能。完整的GlassFish Server支持整个   EJB 3.1规范。有关详细信息,请参阅JSR 318。

您可以找到Web ProfileFull Profile here中包含的功能的比较(它是为Glassfish 3.1.1制作的,但对于Glassfish 4应该几乎相同,除了一些更新的一些功能的版本)。您可以在this article中找到EJB 3.1 Lite和Full之间的一个很好的功能比较。

<强>更新

正如您在评论(和初始问题)中所写的那样,您没有直接在Web应用程序中使用任何企业bean,而是通过JNDI检索bean实例。这不适用于Glassfish的Web Profile,因为远程查找的功能不存在,例如缺少CORBAORB个模块(有一些基本的CORBA OMG API,但仅仅因为其他模块需要它们。)

由于您的目标是使服务器更轻量级,这可能是您的另一个选择:

您可以使用{{1}删除未使用的组件和模块}命令行工具或图形工具pkg。您可以安装Glassfish的updatetool,然后逐步删除过时的组件以使服务器更轻量级。有关这些工具的更多详细信息,请参阅oracle docs

另见: