個(gè)人對(duì)ejb、weblogic都不是太熟悉,算是處于一個(gè)學(xué)習(xí)的階段,由于公司的項(xiàng)目全都是ejb架構(gòu)出來的,所用的服務(wù)器不是jboss就是weblogic,也真算是把我弄得暈頭轉(zhuǎn)向,在做的過程中老是遇到各種各樣奇怪的錯(cuò)誤信息,在此做一下總結(jié)記錄,日后若再出現(xiàn)可以參考。 用weblogic服務(wù)器還是我第一次在實(shí)戰(zhàn)的項(xiàng)目中用,雖然大家都說就跟tomcat一樣都是服務(wù)器,一個(gè)道理,可是實(shí)際運(yùn)用中以及根據(jù)每個(gè)人的習(xí)慣不同總會(huì)出現(xiàn)一些異常,這時(shí)候可能要是能夠斷點(diǎn) debug就好多了,可以很快的找到錯(cuò)誤信息,就很方便啦!在我尋找如何讓weblogic可以debug的時(shí)候,我搜索了一下很多網(wǎng)友的意見,但是我按照上面的步驟做完以后,也就是在你的weblogic安裝目錄下 D:\bea\user_projects\domains\firstwls\bin找到該文件startWeblogic.cmd,然后打開編輯里面的東西,具體的可以參考 http://blog.163.com/caojun_1205/blog/static/12955312220099693236552/,里面說這樣一改就ok了,實(shí)際上我改完以后,啟動(dòng)weblogic然后選擇自己在eclipse中配置的debug模式,已選擇就出現(xiàn)問題,如下: “Failed to connect to remote VM. Connection refused.”, 這個(gè)問題我糾結(jié)了很長(zhǎng)時(shí)間,都說是端口不對(duì),可是到底哪里的端口不對(duì)又沒有找出根源來,后來還是請(qǐng)了高手幫我搞定的,嗚嗚,糾結(jié)了好長(zhǎng)時(shí)間呢 ![]() 根據(jù)他的經(jīng)驗(yàn)?zāi)?,他說一般不建議自己直接在startWeblogic.cmd中添加或設(shè)置變量,我并不是太明白什么意思,他說網(wǎng)上的添加的哪些變量實(shí)際上在這個(gè)文件里面setDomainEnv.cmd里面基本都有的,不需要自己改(自己不能隨便更改startWeblogic.cmd文件),要改的話應(yīng)該在setDomainEnv.cmd里面改,我突然醒悟了,的確,你可以打開該文件,發(fā)現(xiàn)里面是有debugFlag的,如果你懂得里面寫的是什么意思,可以認(rèn)真看一下那部分判斷debugFlag的語句(我個(gè)人不是太懂),也就是這部分語句決定了到底weblogic是不是允許debug,以下是,核心段=====》 if "%debugFlag%"=="true" ( set JAVA_DEBUG=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=%DEBUG_PORT%,server=y,suspend=n -Djava.compiler=NONE set JAVA_OPTIONS=%JAVA_OPTIONS% %enableHotswapFlag% -ea -da:com.bea... -da:javelin... -da:weblogic... -ea:com.bea.wli... -ea:com.bea.broker... -ea:com.bea.sbconsole... ) else ( set JAVA_OPTIONS=%JAVA_OPTIONS% %enableHotswapFlag% -da ) 你可以發(fā)現(xiàn)它里面的 JAVA_DEBUG跟我們其他網(wǎng)友說要配置在startWeblogic.cmd里面的那段很像,其實(shí)在這里它應(yīng)該就已經(jīng)配置了,所以我們不用在startWeblogic.cmd里面再定義一個(gè)JAVA_DEBUG,我們只需要引用setDomainEnv.cmd里面的JAVA_DEBUG 就可以了,(為什么可以直接這樣子引用呢,應(yīng)該是startWeblogic.cmd有引用setDomainEnv.cmd,具體自己可以查看一下startWeblogic.cmd文件,貼出此段:call "%DOMAIN_HOME%\bin\setDomainEnv.cmd" %*) ,這樣一來,startWeblogic.cmd里面的東西最后要修改的那段就變成: if "%WLS_REDIRECT_LOG%"=="" ( echo Starting WLS with line: echo %JAVA_HOME%\bin\java %JAVA_VM% %JAVA_DEBUG% %MEM_ARGS% %JAVA_OPTIONS% -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy %PROXY_SETTINGS% %SERVER_CLASS% %JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy %PROXY_SETTINGS% %SERVER_CLASS% ) else ( echo Redirecting output from WLS window to %WLS_REDIRECT_LOG% %JAVA_HOME%\bin\java %JAVA_VM% %JAVA_DEBUG% %MEM_ARGS% %JAVA_OPTIONS% -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy %PROXY_SETTINGS% %SERVER_CLASS% >"%WLS_REDIRECT_LOG%" 2>&1 ) 這里是不用再另外配置JAVA_DEBUG這個(gè)變量的,前面已經(jīng)解釋過了。 在setDomainEnv.cmd里,可以找到一段對(duì)debugFlag的判斷(藍(lán)色判斷語句部分),那么只有在debugFlag=true的情況下才會(huì)進(jìn)入debug的,那你一定要想辦法對(duì)debugFlag做一下處理,讓它為true。 最后,還有一點(diǎn)你可以發(fā)現(xiàn)在setDomainEnv.cmd里面,它是有一個(gè)默認(rèn)端口的DEBUG_PORT=8453,你可以搜索一下,這個(gè)端口很重要,因?yàn)槲覀冊(cè)趀clipse里配置debug的時(shí)候要填的端口要跟此端口一致,否則就會(huì)報(bào)出我出現(xiàn)的錯(cuò)誤
|
|