<noscript><a ><img src="http://iplus.allyes.com/main/adfshow?user=joyo|chenhl|chenhl_10023&db=iplus" width="100" height="300" border="0"></a></noscript>
EJB3.0中JNDI的綁定和多通路傳輸<>
XML:namespace prefix = o ns = "urn:schemas-microsoft-com:
默認(rèn)的會(huì)話bean會(huì)以路徑或遠(yuǎn)程接口的全名綁定到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
{
}
遠(yuǎn)程接口的JNDI綁定
使用org.jboss.ejb3.RemoteBindings annotation來改變你遠(yuǎn)程接口的JNDI名字。
@Stateless
@RemoteBindings({@RemoteBinding(jndiName="custom/remote/MySession")})
public class MySessionBean implements MySession
{
}
多通路傳輸和客戶端攔截(Multiple transports and Client Interceptors
)
你可以通過JBoss Remoting架構(gòu)來展現(xiàn)一個(gè)會(huì)話bean通過多通路傳輸?shù)倪h(yuǎn)程調(diào)用?,F(xiàn)在僅僅一些插件支持。可以查看JBoss文檔中怎樣定義傳送MBean。要展現(xiàn)一個(gè)會(huì)話bean通過多通路傳輸你需要使用遠(yuǎn)程綁定注解。
public @interface RemoteBinding
{
String jndiBinding() default "";
String interceptorStack() default "SessionBeanClientInterceptors";
String clientBindUrl();
Class factory() default org.jboss.ejb3.remoting.RemoteProxyFactory.class;
}
JNDI綁定指定了代理將捆綁的JNDI名字。
攔截堆棧(interceptorStack)允許你插入數(shù)據(jù)到一個(gè)JBoss AOP(棧結(jié)構(gòu))。會(huì)話bean客戶端攔截器(SessionBeanClientInterceptors)棧可以在你部署得文件夾下的ejb3-interceptors-aop.xml配置文件中找到。
clientBindUrl定義了客戶端用來綁定
服務(wù)器的JBoss遠(yuǎn)程URL。
Factory允許你為你自己代理的bean插入攔截。你通常不需要接觸這些設(shè)置。
這里是一個(gè)例子:
@Stateless
@RemoteBindings({
@RemoteBinding(jndiName="custom/remote/MySession",
interceptorStack="MyInterceptorStack",
clientBindUrl="socket://foo.jboss.org:2222")
})
public class MySessionBean implements MySession
{
}