EJB远程服务在不同版本下的调用问题

使用说明:这个是在基于[WebLogic调用EJB3.0服务的异常]和[synchronized对静态类与实例的区别]基础上的问题,因为我们在各种环境下weblogic10.3版本上都调试通了,但一移到11版本就报错。
部分代码:

public  static GISElectricService getEJBResultByMethodNames() throws WebException {
 InitialContext ctx = null;
 Properties props = new Properties();
 props.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY,
  "weblogic.jndi.WLInitialContextFactory");
 props.setProperty(javax.naming.Context.PROVIDER_URL,
   context_provider_url);
 try {
  ctx = new InitialContext(props);
  beanObj = (GISElectricService) ctx.lookup(JNDI_NAME);//抛异常位置,每次lookup时都报错,并且jndiname是找到的。
   } catch (NamingException e) {
  logger.error("Exception:", e);
  //捕获远程上抛的异常信息
  String errorMeg = e.getCause().getMessage() ;
  logger.error("拓扑分析的异常----->"+errorMeg) ;
  throw new WebException(ExceptionConstants.Code_3500,errorMeg);
 }
 return beanObj;
}

 

   分析:初开始抛的异常是找不到JNDI目录树,当时发布的环境不是WebLogic,怀疑里面的容器不支持,但后来发布到weblogic环境下依然报错,报的是lookup封装的一些异常,而且在10.3下没有任何问题,最终只能定位为坑爹的版本问题。
   结论:有时间对WebLogic11作一些了解,感觉它底层的初始化机制都不一样了。

你可能感兴趣的:(ejb)