【问题标题】:RMI call to my session bean using Groovy使用 Groovy 对我的会话 bean 进行 RMI 调用
【发布时间】:2012-12-09 09:06:17
【问题描述】:

谁能给我一个代码 sn-p,我可以在其中对 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) 
{
}

【问题讨论】:

  • 这几乎是一样的,只是你可以从一些语法糖中受益。你试过什么?
  • @WillP 我添加了我的 java 代码。

标签: java groovy weblogic rmi


【解决方案1】:

我不知道有任何库可以包装/简化来自 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()
}

时髦的:-)

【讨论】:

  • 谢谢。但它是Java。我一直在寻找更容易的东西。 :--)
  • “它是 Java”是什么意思?
  • 我的意思是我正在寻找比提到的代码更容易的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
  • 2011-07-23
  • 1970-01-01
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多