開發中,每每發佈的應用與開發環境的環境有差別,測試環境報的問題在開發環境很難重現,也很難定位問題,若是報錯,是程序問題仍是環境問題,經常是讓開發頭痛的事。html
拿咱們項目來講,測試環境用的服務器是JBOSS,而開發環境是Jetty或者Tomcat,既然這樣,而測試的服務器咱們都沒有權限訪問,甚至看日誌的權限都沒有,因此我通常在自已機器上也裝一個一樣版本的JBOSS。node
緣由一:重現問題,排除環境差別web
緣由二:便於調試,定位問題(固然這裏指遠程調試)windows
方法:服務器
1. 咱們把項目的war包放到JBOSS的deploy目錄下session
2. 打開Jboss安裝目錄下的bin目錄,找到run.bat文件(Windowx環境,Linux請看文章最後),搜索8787,找到以下一行:app
rem set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y %JAVA_OPTS%
dom
改成以下,即去掉紅色部分,即註釋便可webapp
set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y %JAVA_OPTS%
socket
而後運行Jboss的run.bat啓動Jboss,這裏Jboss啓動畫面以下:
3.這裏Jboss的配置已徹底結束,下面請打開Eclipse,鏈接到Jboss的遠程端口,菜單路徑
Run-->Debug Configrations-->Remote Java Application 而後雙擊該菜單Remote Java Application,在彈出的界面作以下配置:
按上圖配置完後,單擊Apply保存配置,而後單擊Debug按鈕,此時已鏈接到Jboss監聽端口8787,Jboss監聽到該端口後也開始啓動。
到此OK,而後在你的代碼裏打斷點,開始爽歪歪的調試吧,定位問題今後再也不難。
注意:上面是在windows環境下,若是是Linux也很簡單,只需修改run.conf 文件,找到以下一行:
#JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"
去掉前面的#號註釋,改成以下便可:
JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"
JBOSS 項目部署的兩種方式
1:直接放war包
直接將項目打成example.war包放在${JBOSS_HOME}standalone/deployments下,直接運行jboss就能夠了
2:放項目文件
在${JBOSS_HOME}standalone/deployments下新建目錄example.war和example.war.dodeploy。將項目的文件放在example.war目錄下就能夠了。
在JBOSS自帶的說明文件README.txt文件裏說的很詳細,英文的,文件在 ${JBOSS_HOME}standalone/deployments下
修改JBOSS 中sessionid 中有爲undefined 值,則要配置instance-id="hellnode01"(stone.xml文件中)
Hi All
On Jboss 7.1.1 AS we have problem with session id. I have deployed simple webapplciation on 7 AS, when i get to get session id its give improper data, similar app works fine on 7.0 AS.
index.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%=session.getId() %>
</body>
</html>
session id i am getting as : ResnIPq5zE8E4Q1+mNWpHDEg.undefined
is there any configuration we need to change, can anyone suggest me on this.
Thanks
- See more at: https://developer.jboss.org/thread/201760?tstart=0#sthash.axeisnGW.dpuf
we could find a bug case # JBPAPP-8451 for the about issue.
as a workaround, you have to set instance-id. and this worked for me.
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false" instance-id="hellnode01">
but i see this case status is closed. do i need to add any path my AS 7.1.1.
- See more at: https://developer.jboss.org/thread/201760?tstart=0#sthash.axeisnGW.dpuf