這其中遇到的一個問題是無法獲得Weblogic的上下文環境。始終得不到Context。
javax.naming.NoInitialContextException:
java.lang.NoSuchMethodError: weblogic.management.configuration.KernelMBean.getRefreshClientRuntimeDescriptor()
首先不要被後半部分迷惑:weblogic.management.configuration.KernelMBean.getRefreshClientRuntimeDescriptor()
問題的重點是前半部分java.lang.NoSuchMethodError。
丟擲java.lang.NoSuchMethodError:表示無法找到某一特定方法時。
這樣,就一下定位到了問題的大方向。接下來可以分析weblogic.management.configuration.KernelMBean.getRefreshClientRuntimeDescriptor()。
原來問題出在weblogic.jar。這樣,問題迎刃而解。工程中引用的weblogic相關jar版本有問題。
解決方案:
工程中引用了weblogic.jar、xbean.jar、wljmsclient.jar3個weblogic相關的jar包。
將Linux伺服器上,Weblogic目錄下 %weblogic%bea/weblogic92/server/lib/的相關jar包替換了工程中引用到的jar包後就成功了。
總結:
解決問題的過程,也就那那麼幾分鐘的事情,複製-替換-編譯-打包-部署-測試。可是,在解決的過程中,著實浪費了不少的時間。
即使,將來遇到什麼更怪的沒見過的也都沒問題java.lang.NoSuchMethodError : XXXXX.XXXXX.XXXXX.XXXXX.XXXXX 任他變成什麼、變的多麼奇怪都無所謂。
遇到問題不要慌,應該仔細分析分析,這樣會比漫步目的在網上搜效果好的多。要培養獨立分析解決問題的能力。