1

有人可以给我一个代码片段,我可以在其中对 Groovy 中的会话 bean(用 Java 编写并部署在 Weblogic 上)执行 RMI 调用吗?

编辑 1

这是我的java代码。在 Groovy 中有更简单的方法吗?

Properties props = new Properties();
props.put("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory");
props.put("java.naming.provider.url",”t3://127.0.0.1:7001”);  // url+port format
props.put("java.naming.security.principal", “weblogic_username”));
props.put("java.naming.security.credentials", “weblogic_password”);
try
{
     String simpleName = MyRemoteClass.class.getSimpleName();
     String fullName = MyRemoteClass.class.getName();
     String name = simpleName + "#" + fullName;
     initContext = new InitialContext(props);
     MyRemoteClass remoteClass = (MyRemoteClass)initContext.lookup(name);

     remoteClass.doSomething();
} 
catch (Throwable ex) 
{
}
4

1 回答 1

2

我不知道有任何库可以包装/简化来自 Groovy 的 RMI 调用。如果没有,您至少可以从语法糖、强制和隐式转换中受益:

def props = [
  "java.naming.factory.initial" : "weblogic.jndi.WLInitialContextFactory",
  "java.naming.provider.url" : "t3://127.0.0.1:7001",  // url+port format
  "java.naming.security.principal" : "weblogic_username",
  "java.naming.security.credentials" : "weblogic_password"
] as Properties

try
{
     def name = "${MyRemoteClass.simpleName}#${MyRemoteClass.name}"
     initContext = new InitialContext(props)
     MyRemoteClass remoteClass = initContext.lookup name

     remoteClass.doSomething()
} 
catch (t)
{
  t.printStackTrace()
}

时髦的:-)

于 2012-12-11T11:07:38.033 回答