我无法使用jndi查找在Glassfish 3 web-profile上运行的Web应用程序中访问应用程序服务器的远程EJB bean。
使用我们的Web应用程序的完整配置文件,甚至使用控制台应用程序进行测试,我们都可以轻松访问jndi远程bean。
例外:
Unable to acquire SerialContextProvider for SerialContext
我们希望让我们的网络服务器更轻量级。
答案 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 Profile
和Full Profile
here中包含的功能的比较(它是为Glassfish 3.1.1制作的,但对于Glassfish 4应该几乎相同,除了一些更新的一些功能的版本)。您可以在this article中找到EJB 3.1 Lite和Full之间的一个很好的功能比较。
<强>更新强>
正如您在评论(和初始问题)中所写的那样,您没有直接在Web应用程序中使用任何企业bean,而是通过JNDI检索bean实例。这不适用于Glassfish的Web Profile
,因为远程查找的功能不存在,例如缺少CORBA
和ORB
个模块(有一些基本的CORBA OMG
API,但仅仅因为其他模块需要它们。)
由于您的目标是使服务器更轻量级,这可能是您的另一个选择:
您可以使用{{1}删除未使用的组件和模块}命令行工具或图形工具pkg
。您可以安装Glassfish的updatetool
,然后逐步删除过时的组件以使服务器更轻量级。有关这些工具的更多详细信息,请参阅oracle docs。
另见: