0
如何在Ejb的客户端注入参数? 类似的东西:在上下文中将客户端参数注入ejb bean
final Hashtable<String, String> jndiProperties = new Hashtable<String, String>();
jndiProperties.put("java.naming.factory.initial", "org.ow2.carol.jndi.spi.MultiOrbInitialContextFactory");
jndiProperties.put("java.naming.factory.url.pkgs", "org.ow2.jonas.naming");
jndiProperties.put("java.naming.provider.url", "rmi://localhost:1099");
final Context context = new InitialContext(jndiProperties);
Object obj = context.lookup("MyEjbTest");
context.addToEnvironment("user", new Object());
在服务器端,使用拦截器获取参数由客户端注入:
public Object intercept(InvocationContext ctx) throws Exception {
Object o = ctx.getContextData().get("user");
if (o != null) {
LOG.info("Exists " + o.toString());
return ctx.proceed();
} else {
return null;
}
}
参数用户从来没有在上下文中以及在服务器侧O注入始终为空。有什么办法来处理?
目标是避免为方法添加参数,请给我一个在RIM-IIOP的情况下使用拦截器传输上下文数据的例子吗? – Thumbuscker
一个完整的例子会非常广泛,所以我已经用粗略的轮廓更新了答案。如果在尝试过之后对特定步骤有疑问,我会鼓励您打开一个更具体的问题。 (或者你可以忽略这个答案,并等待其他人提供一个完整的例子,如果你喜欢。)所有这些说,我真的不认为这种方法是值得的努力;我强烈建议你只添加一个额外的方法参数。 –