天天看點

解決掉Eclipse插件之WebLogic Plugin 2.0.0的BUG

解決掉eclipse插件之weblogic plugin 2.0.0的bug

<a href="http://iamin.blogdriver.com/iamin/1176540.html">http://iamin.blogdriver.com/iamin/1176540.html</a>

eclipse插件之weblogic plugin 2.0.0操作說明及bug請見:

<a href="http://iamin.blogdriver.com/iamin/1174442.html">http://iamin.blogdriver.com/iamin/1174442.html</a>

<a href="http://dev2dev.bea.com.cn/bbs/thread.jspa?forumid=124&amp;threadid=34319">http://dev2dev.bea.com.cn/bbs/thread.jspa?forumid=124&amp;threadid=34319</a>

這裡重點說明bug的解決:)

1、weblogic plugin 2.0.0的配置檔案儲存在

%eclipse_home%/workspace/.metadata/.plugins/com.bea.weblogic.eclipse/目錄下

dialog_settings.xml是儲存配置對話框的大小之類的檔案

servers.xml是儲存伺服器配置資訊的檔案

2、解壓出weblogic-eclipse.jar裡的所有檔案

3、反編譯com/bea/weblogic/eclipse/utils/xmlutil.class得到xmlutil.java

在裡面增加兩個函數

 /**

  * 将 source 進行 base64 編碼

  *

  * @param source

  * @return

  */

 public static string buildbase64(string source)

 {

  if(source == null)

  {

   return null;

  }

  return (new sun.misc.base64encoder()).encode(source.getbytes());

 }

  * 将 base64 編碼的字元串 base65code 進行解碼

  * @param base65code

 public static string getfrombase64(string base65code)

  if(base65code == null)

  base64decoder base64decoder = new base64decoder();

  try

   byte[] b = base64decoder.decodebuffer(base65code);

   return new string(b);

  catch(exception e)

   e.printstacktrace();

4、在public iserverinstall[] loadservers(file serversfile)函數裡修改

cserverinstall.setusername(cryptoutil.getdefault().decrypt(new string(base64util.base64tobytearray(getnodevalue(celement))),id));

cserverinstall.setusername(getfrombase64(getnodevalue(celement)));

修改

cserverinstall.setpassword(cryptoutil.getdefault().decrypt(new string(base64util.base64tobytearray(getnodevalue(celement))),id));

cserverinstall.setpassword(getfrombase64(getnodevalue(celement)));

5、在public void saveservers(iserverinstall servers[],file serversfile)函數裡修改

org.w3c.dom.text usernametext = doc.createtextnode(base64util.bytearraytobase64(cryptoutil.getdefault().encrypt(cserver.getusername(),cserver.getid()).getbytes()));

org.w3c.dom.text usernametext = doc.createtextnode(buildbase64(cserver.getusername()));

org.w3c.dom.text passwordtext = doc.createtextnode(base64util.bytearraytobase64(cryptoutil.getdefault().encrypt(cserver.getpassword(),cserver.getid()).getbytes()));

org.w3c.dom.text passwordtext = doc.createtextnode(buildbase64(cserver.getpassword()));

6、編譯這個xmlutil.java得到xmlutil.class,把xmlutil.class打回weblogic-eclipse.jar包裡

7、關閉eclipse

8、把weblogic-eclipse.jar覆寫掉原來插件目錄裡的檔案

9、重新啟動eclipse

10、enjoy...五一節快樂!!!赫赫(^_^)

btw:沒有去研究它裡面的本身的加密為什麼錯誤:(,因為我也想過五一節,而且現在還沒有吃飯:(

繼續閱讀