在eclipse中访问weblogic10.0的JNDI Tree

来源:互联网 发布:office教程 知乎 编辑:程序博客网 时间:2024/05/16 19:20

在eclipse中访问weblogic10.0的JNDI Tree

        这几天一直在处理一个问题,就是在eclipse中来访问weblogic中的JNDI,安装了MyEclipse之后,配置MyEclipse的服务器如下:
启动Eclipse,选择“Window -> Preferences”菜单,展开MyEclipse下的Application Servers节点,点击 WebLogic 10.x,选中右边的 Enable 单选按钮,启用 WebLogic 服务器。配置如下:
①BEA home directory:D:\bea(WebLogic 安装在D:\bea目录中)
②WebLogic installation directory:D:\bea\wlserver_10.0
③Admin username:weblogic
④Admin password:weblogic
⑤Execution domain root:D:\bea\user_projects\domains\base_domain
⑥Execution server name:AdminServer
⑦Security policy file:D:\bea\wlserver_10.0\server\lib\weblogic.policy
⑧JAAS login configuration file:这里不用填,空着就可以了.
然后设置JDK,这里JDK并非一定要选用weblogic自带的JDK,因为weblogic自带的JDK的版本相对较早,如weblogic10.0版本的JDK是JDK1.5.6版本的,而现在用的是JDK6.1或JDK6.2.然后设置Classpath,在paths接点
的右面的prepend to classpath 加入weblogic.jar文件,如:D:\bea\wlserver_10.0\server\lib\weblogic.jar这样就
可以了.
        这样设置好环境变量之后,我在ECLIPSE中访问weblogic的JNDI时,出现了问题,程序的代码如下
            

1package javaee.test1;
2
3import javax.naming.*;
4import java.util.Properties;
5
6   public class JNDITest {
7   public static void main(String[] args) {
     try {
9              Properties p = new Properties();
10            p.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
11            p.put(Context.PROVIDER_URL,"t3://localhost:7001");
12            Context ctx = new InitialContext(p);
13            String test = "Hello WebLogic JNDI";
14            ctx.rebind("test",test);
15            String str = (String)ctx.looku("name");
16            System.out.println(str);
17          }
 
18          catch (NamingException e) {
19               e.printStackTrace();
20          }

21       }

22    }

运行时出现了如下问题:
javax.naming.NoInitialContextException: Cannot instantiate class: weblogic.jndi.WLInitialContextFactory [Root exception is java.lang.ClassNotFoundException: weblogic.jndi.WLInitialContextFactory]
 at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)
 at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
 at javax.naming.InitialContext.init(InitialContext.java:223)
 at javax.naming.InitialContext.<init>(InitialContext.java:197)
 at javaee.test1.JNDITest.main(JNDITest.java:22)
Caused by: java.lang.ClassNotFoundException: weblogic.jndi.WLInitialContextFactory
 at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
 at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Class.java:242)
 at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:42)
 at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
 ... 4 more

         从问题可以看出是找不到weblogic.jndi.WLInitialContextFactory类,开始我认为是classpath环境变量设置错误,但是用winrar打开weblogic.jar发现这个类的确在这个JAR包中,就不知道是什么原因了.到网上找了好久没有找到解决办法.今天起床再来看这个问题的时候,忽然想起老师以前讲过在netbeans中的项目中加入JAR包,于是在eclipse中找了一下,发现可以实现.具体步骤如下:在项目上点鼠标右键,选properties,然后选中左边的Java Build Path,选中右边的Libraries,选择Add External JARs,找到D:\bea\wlserver_10.0\server\lib\weblogic.jar,加入后点OK,就可以了.这时再运行上面的程序,就没有问题了.运行完成后,在weblogic的JNDI Tree里可以看到有一个接点是test,它的内容是"Hello WebLogic JNDI".

        在网上找了几天,都没有解决掉这个问题,今天终于解决了,实在是高兴

原文链接:http://www.blogjava.net/wzhongyu/archive/2007/08/02/133940.html

0 0
原创粉丝点击