EJB3.0中JNDI的綁定和多通路傳輸(轉)
默認的會話bean會以路徑或遠程接口的全名綁定到JNDI。你可以通過定義你自己的@org.jboss.ejb3.LocalBinding或@org.jboss.ejb3.remoting.RemoteBinding來修改
本地接口的JNDI綁定
使用org.jboss.ejb3.LocalBinding annotation來改變你本地接口的JNDI名字。
@Stateless
@LocalBinding(jndiBinding="custom/MySession")
public class MySessionBean implements MySession
{
}
遠程接口的JNDI綁定
使用org.jboss.ejb3.RemoteBindings annotation來改變你遠程接口的JNDI名字。
@Stateless
@RemoteBindings({@RemoteBinding(jndiName="custom/remote/MySession")})
public class MySessionBean implements MySession
{
}
多通路傳輸和客戶端攔截(Multiple transports and Client Interceptors
)
你可以通過JBoss Remoting架構來展現一個會話bean通過多通路傳輸的遠程調用。現在僅僅一些插件支持。可以查看JBoss文檔中怎樣定義傳送MBean。要展現一個會話bean通過多通路傳輸你需要使用遠程綁定注解。
public @interface RemoteBinding
{
?? String jndiBinding() default "";
?? String interceptorStack() default "SessionBeanClientInterceptors";
?? String clientBindUrl();
?? Class factory() default org.jboss.ejb3.remoting.RemoteProxyFactory.class;
}
-
JNDI
綁定指定了代理將捆綁的JNDI名字。
-
攔截堆棧(interceptorStack)允許你插入數據到一個JBoss AOP(棧結構)。會話bean客戶端攔截器(SessionBeanClientInterceptors)棧可以在你部署得文件夾下的ejb3-interceptors-aop.xml配置文件中找到。
-
clientBindUrl
定義了客戶端用來綁定服務器的JBoss遠程URL。
-
Factory
允許你為你自己代理的bean插入攔截。你通常不需要接觸這些設置。
這里是一個例子:
@Stateless
@RemoteBindings({
???????????????? @RemoteBinding(jndiName="custom/remote/MySession",
??????????????????????????????? interceptorStack="MyInterceptorStack",
??????????????????????????????? clientBindUrl="socket://foo.jboss.org:2222")
??????????????? })
public class MySessionBean implements MySession
{
}
posted on 2006-06-30 11:30 liaojiyong 閱讀(614) 評論(0) 編輯 收藏 所屬分類: EJB