[转帖]weblogic的JDNI连接 (转)_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4188 | 回复: 0   主题: [转帖]weblogic的JDNI连接 (转)        下一篇 
masy
注册用户
等级:少校
经验:1234
发帖:182
精华:0
注册:2011-11-4
状态:离线
发送短消息息给masy 加好友    发送短消息息给masy 发消息
发表于: IP:您无权察看 2011-11-9 16:03:26 | [全部帖] [楼主帖] 楼主

这两天在学习ejb,且不说ejb如何编写,刚开始就被jndi给难住了。记得以前在Jbuilder中照着别人的方法试过,已经成功了,没有深研。想不到现在来做,又给难住了,搞了两天终于有了结果。

首先说一说客户端通过jndi连接weblogic,不需要把客户端程序放到(或是布署到)weblogic中运行,客户端用一个简单的class文件既可,代码下如。

Java代码
北京联动北方科技有限公司北京联动北方科技有限公司北京联动北方科技有限公司

  1. /*JNDIClientTest.java*/
  2. import java.util.Properties; 
  3. import javax.naming.Context; 
  4. import javax.naming.InitialContext; 
  5. publicclass JDNIClientTest { 
  6.       publicstaticvoid main(String[] args) { 
  7.              String url = "t3://localhost:7001"; 
  8.              Properties prop = null; 
  9.             try { 
  10.                    prop = new Properties(); 
  11.                    prop.put(Context.INITIAL_CONTEXT_FACTORY, 
  12.                   "weblogic.jndi.WLInitialContextFactory"); 
  13.                    prop.put(Context.PROVIDER_URL, url); 
  14.                    Context context = new InitialContext(prop); 
  15.                    System.out.println("OK!"); 
  16.              } catch (Exception e) { 
  17.                    System.out.println(e.toString()); 
  18.              } 
  19.        } 



import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;

public class JDNIClientTest {
       public static void main(String[] args) {
             String url = "t3://localhost:7001";
             Properties prop = null;
             try {
                   prop = new Properties();
                   prop.put(Context.INITIAL_CONTEXT_FACTORY,
                   "weblogic.jndi.WLInitialContextFactory");
                   prop.put(Context.PROVIDER_URL, url);
                   Context context = new InitialContext(prop);
                   System.out.println("OK!");
             } catch (Exception e) {
             System.out.println(e.toString());
       }
}
}


上面包括的包都是jre里的标准包。启动weblogic后,运行该程序。

当然会有问题,显示“javax.naming.NoInitialContextException: Cannot instantiate class: weblogic.jndi.WLInitialContextFactory [Root exception is java.lang.ClassNotFoundException: weblogic.jndi.WLInitialContextFactory]” 为什么编译没问题了,却还是出错呢,这是网络上问得最多的问题。这是缺少"\bea\weblogic81\server\lib\ wlclient.jar"文件所致。 在buildpath里加入这个包后再运行。

如果还是出错,显示“Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/corba/se/connection/ORBSocketFactory” 还是缺少包,这时如果你只安装有jre1.5.*,那是没有ORBSocketFactory这个类文件的。还是找个jre1.4.*吧,这个类在 “jre/lib/rt.jar”包中。据说这个问题在weblogic9中已解决。

这时应该没什么问题了,你可以进一步学习ejb或其它内容了。

上面的t3:是weblogic中jndi用的协议,就和http一样,其它服务器如jboss用iiop之类进行连接,不同的服务器连接的方式不一样,具体要再查资料。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论