子在川上曰

            逝者如斯夫不舍晝夜
          隨筆 - 71, 文章 - 0, 評論 - 915, 引用 - 0
          數(shù)據(jù)加載中……

          RCP中因ClassLoader 而導致找不到類的解決方法

          我的RCP對ClassLoad問題的解決,這是一個讀jndi配置文件的方法。
              private void intJNDI() {
                  ClassLoader cl = Thread.currentThread().getContextClassLoader(); //保存老的ClassLoader
                  Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader()); //設置新的ClassLoader
                  IPath path = new Path("properties/jndi.properties");
                  URL url = AdminConsolePlugin.getDefault().find(path);
                  Properties p = new Properties();
                  try {
                      p.load(url.openStream());
                      String address = System.getProperty("jndi.address");
                      String port = System.getProperty("jndi.port");
                      if (address != null && !address.trim().equals("") && port != null && !port.trim().equals("")) {
                          p.remove("java.naming.provider.url");
                          p.setProperty("java.naming.provider.url", "jnp://" + address.trim() + ":" + port.trim());
                      }
                      AdminConsolePlugin.getDefault().setJNDIInitContext(new InitialContext(p));
                  } catch (Throwable e) {
                      throw new RuntimeException("Failed to connect to domain controller.", e);
                  } finally {
                      Thread.currentThread().setContextClassLoader(cl);//最后恢復成老的ClassLoader
                  }
              }

          posted on 2006-03-07 14:49 陳剛 閱讀(1103) 評論(0)  編輯  收藏 所屬分類: Eclipse

          主站蜘蛛池模板: 枣庄市| 新密市| 合作市| 衡水市| 沙雅县| 东源县| 桐乡市| 平舆县| 滦南县| 如东县| 姚安县| 建始县| 招远市| 双流县| 临颍县| 黄浦区| 长兴县| 河间市| 曲阳县| 民丰县| 普安县| 石城县| 葫芦岛市| 宽甸| 连平县| 呼和浩特市| 乳山市| 青海省| 信丰县| 阳江市| 苗栗县| 南雄市| 科尔| 宜兰市| 张北县| 望奎县| 禄丰县| 扎囊县| 昆明市| 江川县| 历史|