<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:
默認的會(huì )話(huà)bean會(huì )以路徑或遠程接口的全名綁定到JNDI。你可以通過(guò)定義你自己的@org.jboss.ejb3.LocalBinding或@org.jboss.ejb3.
Remoting.RemoteBinding來(lái)修改
本地接口的JNDI綁定
使用org.jboss.ejb3.LocalBinding annotation來(lái)改變你本地接口的JNDI名字。
@Stateless
@LocalBinding(jndiBinding="custom/MySession")
public class MySessionBean implements MySession
{
}
遠程接口的JNDI綁定
使用org.jboss.ejb3.RemoteBindings annotation來(lái)改變你遠程接口的JNDI名字。
@Stateless
@RemoteBindings({@RemoteBinding(jndiName="custom/remote/MySession")})
public class MySessionBean implements MySession
{
}
多通路傳輸和客戶(hù)端攔截(Multiple transports and Client Interceptors
)
你可以通過(guò)JBoss Remoting架構來(lái)展現一個(gè)會(huì )話(huà)bean通過(guò)多通路傳輸的遠程調用?,F在僅僅一些插件支持??梢圆榭碕Boss文檔中怎樣定義傳送MBean。要展現一個(gè)會(huì )話(huà)bean通過(guò)多通路傳輸你需要使用遠程綁定注解。
public @interface RemoteBinding
{
String jndiBinding() default "";
String interceptorStack() default "SessionBeanClientInterceptors";
String clientBindUrl();
Class factory() default org.jboss.ejb3.remoting.RemoteProxyFactory.class;
}
JNDI綁定指定了代理將捆綁的JNDI名字。
攔截堆棧(interceptorStack)允許你插入數據到一個(gè)JBoss AOP(棧結構)。會(huì )話(huà)bean客戶(hù)端攔截器(SessionBeanClientInterceptors)??梢栽谀悴渴鸬梦募A下的ejb3-interceptors-aop.xml配置文件中找到。
clientBindUrl定義了客戶(hù)端用來(lái)綁定
服務(wù)器的JBoss遠程URL。
Factory允許你為你自己代理的bean插入攔截。你通常不需要接觸這些設置。
這里是一個(gè)例子:
@Stateless
@RemoteBindings({
@RemoteBinding(jndiName="custom/remote/MySession",
interceptorStack="MyInterceptorStack",
clientBindUrl="socket://foo.jboss.org:2222")
})
public class MySessionBean implements MySession
{
}