天天看点

解决掉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:没有去研究它里面的本身的加密为什么错误:(,因为我也想过五一节,而且现在还没有吃饭:(

继续阅读