我正在尝试在JSF ManagedBean上注入EJB的一个非常简单的任务,web和ejb模块都在同一个耳朵里,我使用的是无状态ejb的本地接口,但是,当试图呈现引用托管bean的视图,我收到此错误:
GRAVE: Error Rendering View[/ejecutivo.xhtml]
javax.ejb.EJBException: Attempt to pass a reference to an EJBLocalObject to a remote client. A local EJB component may only be accessed by clients co-located in the same ear or standalone jar file.
at cl.bbb.vrc.ejb.bean.NotaClienteEJB_eeud7i_NotaClienteServiceImpl.writeObject(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
[...]
我的项目设置如下:
我正在使用Weblogic 10.3.6(来自OEPE)和来自WLS的JSF 2.0共享库
我已尝试在eclipse上对proyects进行依赖设置的每个可能组合,但我无法使其工作,甚至导出EAR并确保war和ejb-jar在其上,部署它在WLS上,但得到了同样的错误。
如果我改为@Remote界面,我会得到 NotSerializableException
我已经搜索了所有内容,但没有为这个问题找到任何有用的东西......
修改 好吧,它与managedbean的客户端状态保存方法的序列化有关,我将其更改为服务器并且工作正常,但是,我需要知道为什么会发生这种情况。可能是WLS 10.3.6问题或设置?