[96]關於ex13-20的JNDI

資管系大二下學期選修課程
授課教授:XO

版主: b80203, ghost3401, XO, maa, kelly19881227

分享到: Facebook

[96]關於ex13-20的JNDI

文章cary205 » 週三 5月 28, 2008 9:54 pm

這幾天在搞JNDI的設定,不過我弄了弄,還是跑不出來ㄟ。
不知道是不是我漏了步驟,還是有哪裡做錯了??

先說說我的流程吧:

首先我先將範例的 mysql 資料安裝至 b2d
然後用 show database; 看看成果
看起來書上範例資料庫都已經有了。
圖檔

再來我就設定 Tomcat conf 資料夾底下的 server.xml 檔:
代碼: 選擇全部
...節錄...
<!-- ========== setting for JSP book example ====================================== -->
   <Context path="/JspBook" docBase="JspBook" debug="0" reloadable="true" crossContext="true"/>
   <Context path="/970508" docBase="970508"></Context>
   <Context path="/JspBook/ch10" docBase="JspBook/ch10" reloadable="true" crossContext="true">
      <Logger className="org.apache.catalina.logger.FileLogger"
       directory="webapps/JspBook/ch10/logs"
       prefix="ch10msg." suffix=".log" timestamp="true"/>
      <Valve className="org.apache.catalina.valves.AccessLogValve"
       directory="webapps/JspBook/ch10/logs"  prefix="ch10Access." suffix=".log"
       pattern="common" resolveHosts="false"/>
   </Context>

   <Context path="/JspBook/ch13" docBase="JspBook/ch13"  reloadable="true" crossContext="true">
      <Resource name="jdbc/BookDB" auth="Container"
         type="javax.sql.DataSource"
         description="MySQL Conncetor/J DB JNDI Resource"/>

      <ResourceParams name="jdbc/BookDB">
         <parameter>
            <name>username</name> <value>root</value>
         </parameter>

         [color=red]<parameter>
            <name>password</name> <value>bv1al</value>
         </parameter>[/color]   

         <parameter>
            <name>driverClassName</name>
            <value>org.gjt.mm.mysql.Driver</value>
         </parameter>

         <parameter>
            <name>url</name>
            <value>jdbc:mysql://localhost:3306/BookDB?autoReconnect=true</value>
         </parameter>
      </ResourceParams>
   </Context>
   
   <Context path="/JspBook/ch15" docBase="JspBook/ch15"  reloadable="true" crossContext="true">
      <Resource name="jdbc/BookDB" auth="Container"
         type="javax.sql.DataSource"
         description="MySQL Conncetor/J DB JNDI Resource"/>

      <ResourceParams name="jdbc/BookDB">
         <parameter>
            <name>driverClassName</name>
            <value>org.gjt.mm.mysql.Driver</value>
         </parameter>

         <parameter>
            <name>url</name>
            <value>jdbc:mysql://localhost:3306/BookDB</value>
         </parameter>

         <parameter>
            <name>username</name><value>root</value>
         </parameter>

         [color=red]<parameter>
           <name>password</name> <value>bv1al</value>
         </parameter>[/color]   
      </ResourceParams>
   </Context>

   <Context path="/JspBook/ch16" docBase="JspBook/ch16" reloadable="true" crossContext="true"/>
   <Context path="/JspBook/ch19" docBase="JspBook/ch19" reloadable="true" crossContext="true"/>
   <Context path="/class" docBase="JspBook/class" reloadable="true" crossContext="true" />

   <Context path="/store" docBase="JspBook/store"  reloadable="true" crossContext="true">
      <Resource name="jdbc/StoreDB" auth="Container"
         type="javax.sql.DataSource"
         description="MySQL Conncetor/J DB JNDI Resource"/>

      <ResourceParams name="jdbc/StoreDB">
         <parameter>
            <name>driverClassName</name>
            <value>org.gjt.mm.mysql.Driver</value>
         </parameter>

         <parameter>
            <name>url</name>
            <value>jdbc:mysql://localhost:3306/StoreDB</value>
         </parameter>

         <parameter>
            <name>username</name><value>root</value>
         </parameter>

         [color=red]<parameter>
            <name>password</name> <value>bv1al</value>
         </parameter>[/color]                        
      </ResourceParams>
   </Context>

   <Context path="/eDM" docBase="JspBook/eDM" reloadable="true" crossContext="true">
      <Resource name="jdbc/eDMDB" auth="Container"
         type="javax.sql.DataSource"
         description="MySQL Conncetor/J DB JNDI Resource"/>

      <ResourceParams name="jdbc/eDMDB">
         <parameter>
            <name>driverClassName</name>
            <value>org.gjt.mm.mysql.Driver</value>
         </parameter>

         <parameter>
            <name>url</name>
            <value>jdbc:mysql://localhost:3306/eDMDB</value>
         </parameter>

         <parameter>
            <name>username</name><value>root</value>
         </parameter>

         [color=red]<parameter>
            <name>password</name> <value>bv1al</value>
         </parameter>[/color]
      </ResourceParams>
   </Context>
<!-- ========== end of setting for JSP book example =============================== -->
...節錄...


以及設定 Resin conf 資料夾的 resin.conf 檔:
代碼: 選擇全部
...節錄...
<!-- ========= setting for JSP book example ======================== -->
<web-app id='JspBook'  app-dir='JspBook' />
<web-app id='JspBook/ch10' app-dir='JspBook/ch10' />
<web-app id='JspBook/ch13'  app-dir='JspBook/ch13' />

<web-app id='JspBook/ch15'  app-dir='JspBook/ch15' >
    <resource-ref>
      <res-ref-name>jdbc/BookDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <init-param driver-name="org.gjt.mm.mysql.Driver"/>
      <init-param url="jdbc:mysql://localhost:3306/BookDB?user=root[color=red]&password=bv1al[/color]"/>
   </resource-ref>
</web-app>

<web-app id='JspBook/ch16'  app-dir='JspBook/ch16' />
<web-app id='JspBook/ch19'  app-dir='JspBook/ch19' />
<web-app id='class'  app-dir='JspBook/class'/>
<web-app id='store'  app-dir='JspBook/store' >
   <resource-ref>
      <res-ref-name>jdbc/StoreDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <init-param driver-name="org.gjt.mm.mysql.Driver"/>
      <init-param url="jdbc:mysql://localhost:3306/StoreDB?user=root[color=red]&password=bv1al[/color]"/>
   </resource-ref>
</web-app>

<web-app id='eDM'  app-dir='JspBook/eDM'>
   <resource-ref>
      <res-ref-name>jdbc/eDMDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <init-param driver-name="org.gjt.mm.mysql.Driver"/>
      <init-param url="jdbc:mysql://localhost:3306/eDMDB?user=root[color=red]&password=bv1al[/color]"/>
   </resource-ref>
</web-app>
<!-- ========= end of setting for JSP book example =================== -->
...節錄...


開啟 Tomcat 和 Resin 後...
我去瀏覽 http://127.0.0.1:8181/JspBook/ch13/ex13-20/JNDI.jsp 所出現的畫面

圖檔

瀏覽 http://127.0.0.1:8080/JspBook/ch13/ex13-20/JNDI.jsp 所出現的畫面

圖檔

唔~~看不大懂錯誤訊息,感覺好像是說無法取得資料庫連線...

我把錯誤訊息複製了下來:

Tomcat:
代碼: 選擇全部
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Cannot create PoolableConnectionFactory, cause: Server connection failure during transaction. Due to underlying exception: 'java.net.ConnectException: Connection refused'.
Attempted reconnect 3 times. Giving up.
   org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
   org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
   org.apache.jsp.ex13_002d20.JNDI_jsp._jspService(JNDI_jsp.java:116)
   org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:856)


root cause

org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory, cause: Server connection failure during transaction. Due to underlying exception: 'java.net.ConnectException: Connection refused'.
Attempted reconnect 3 times. Giving up.
   org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:825)
   org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:518)
   org.apache.jsp.ex13_002d20.JNDI_jsp._jspService(JNDI_jsp.java:63)
   org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:856)


note The full stack trace of the root cause is available in the Tomcat logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.0.18


Resin:
代碼: 選擇全部
500 Servlet Exception
java.sql.SQLException: Unable to connect to any hosts due to exception:
java.net.ConnectException: Connection refused
   at com.mysql.jdbc.Connection.createNewIO(Connection.java:1690)
   at com.mysql.jdbc.Connection.<init>(Connection.java:427)
   at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:395)
   at com.caucho.sql.XADataSourceAdapter.getXAConnection(XADataSourceAdapter.java:119)
   at com.caucho.sql.XADataSourceAdapter.getXAConnection(XADataSourceAdapter.java:82)
   at com.caucho.sql.XADataSourceAdapter.getPooledConnection(XADataSourceAdapter.java:150)
   at com.caucho.sql.DBPool.createDriverConnection(DBPool.java:1473)
   at com.caucho.sql.DBPool.createConnection(DBPool.java:1417)
   at com.caucho.sql.DBPool.getPooledConnection(DBPool.java:1353)
   at com.caucho.sql.DBPool.getConnection(DBPool.java:1203)
   at com.caucho.sql.DBPool.getConnection(DBPool.java:1177)
   at _ex13_22d20._JNDI__jsp._jspService(/JspBook/ch13/ex13-20/JNDI.jsp:22)
   at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
   at com.caucho.jsp.Page.subservice(Page.java:506)
   at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)
   at com.caucho.server.http.Invocation.service(Invocation.java:315)
   at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
   at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)
   at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:163)
   at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
   at java.lang.Thread.run(Thread.java:534)


--------------------------------------------------------------------------------
Resin 2.1.12 (built Tue Dec 9 14:58:25 PST 2003)
附加檔案
resinerr.jpg
(86.7 KiB) 尚未被下載
tomerr.jpg
(58.58 KiB) 尚未被下載
screen_02 20.56.jpg
(46.77 KiB) 尚未被下載
頭像
cary205
E-Office 小組
 
文章: 50
註冊時間: 週三 9月 13, 2006 2:52 pm

Re:[96]關於ex13-20的JNDI

文章copyleft » 週四 5月 29, 2008 10:58 am

如果下指令

mysql -h localhost -u root -p

可以正常連到 mysql 嗎
頭像
copyleft
E-Office 小組
 
文章: 1006
註冊時間: 週六 8月 07, 2004 11:27 am
來自: Taiwan

Re:[96]關於ex13-20的JNDI

文章XO » 週四 5月 29, 2008 6:00 pm

應該是你沒把 MySQL Port 3306 打開...
所以你在 local 以 mysql 指令可以對 MySQL 伺服器下資料庫指令。

可是咱們是用 jdbc:mysql://localhost:3306/BookDB 這 URL 在連接資料庫的。

可以用 netstat -tan 去看一下 3306 port 有沒打開?
B2D Server 的安裝基於安全的理由,預設 3306 埠是關閉的。

你可以用 下面步驟來開啟 3306 埠:

圖檔
_____

或者你可以用編輯器編輯 /etc/mysql/my.cnf 設定檔,找到其中 skip-networking 這一行把它註解掉!但是記得改過設定,必須 ...

代碼: 選擇全部
service mysql restart
最後由 XO 於 週一 4月 05, 2010 3:55 pm 編輯,總共編輯了 1 次。
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5331
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.

Re:[96]關於ex13-20的JNDI

文章cary205 » 週四 5月 29, 2008 11:00 pm

copyleft 寫:如果下指令

mysql -h localhost -u root -p

可以正常連到 mysql 嗎


這樣子是有連了嗎??
圖檔

XO 寫:應該是你沒把 MySQL Port 3306 打開...
所以你在 local 以 mysql 指令可以對 MySQL 伺服器下資料庫指令。


我去開了3306,但是我去restart mysql,他怎麼說...failed??是打不開嗎??我按啟動也是一樣...failed...
圖檔

還有我去 mysql 輸入指令>
代碼: 選擇全部
select host, user, password from user;

host 欄位內沒有 b2dsvr ㄟ,是要我們自己新增嗎??我的主機名稱也是用 b2dsvr。
附加檔案
tosql.jpg
(20.94 KiB) 尚未被下載
sqlfail.jpg
(60.67 KiB) 尚未被下載
頭像
cary205
E-Office 小組
 
文章: 50
註冊時間: 週三 9月 13, 2006 2:52 pm

Re:[96]關於ex13-20的JNDI

文章ofese » 週四 5月 29, 2008 11:56 pm

cat /var/log/mysql/mysql.err
再貼張照 片吧
ofese
懷疑的國中生
 
文章: 75
註冊時間: 週三 9月 20, 2006 10:15 pm

Re:[96]關於ex13-20的JNDI

文章XO » 週五 5月 30, 2008 3:38 pm

這個 mysql restart 或是 stop 後,再 start 會產生 failed 訊息也令我粉懊惱。但是我去看歷次 /var/log/mysql/mysql.err
size 都是 0,那些歷史性 gzip 過的 archive,解開後也都是 size 為 0 的檔案。

圖檔

有趣的是:我發覺即便訊息說是 failed 但是我的觀察是 MySQL 啟動都很正常,資料庫擷取也可以都沒問題。
其實可以用昨天我教的方法: ps auwx | grep mysqld 來作確認,看看 MySQL Server 的 Daemon 是否啟動了!

珦柔呀!要不要繼續試著去瀏覽該網頁... 這時如果帳號密碼不符,系統是會報怨 something like the following ....

javax.servlet.ServletException: Invalid authorization specification,
message from server: "Access denied for user: 'root@b2dsvr' (Using password: YES)"


因為我不知道你是怎麼 setup 你的 B2D Server 的,有跑過 b2d-setup 腳本設過 Server 管理的密碼成為 bv1al 的嗎?
沒有的話,你可以試一下: jdbc:mysql://localhost:3306/BookDB?user=root&password=bv1al 這裡把那鍋
&password=bv1al 拿掉!不行的話...

昨天不是也有教,可以用 grant 指令在 mysql 裡,做權限管理設定!

BTW, 順便提供一下這些指令的結果:

  • hostname
  • dnsdomainname
  • 以及 mysql 資料庫裡 select host,user,password from user;
最後由 XO 於 週一 4月 05, 2010 3:56 pm 編輯,總共編輯了 4 次。
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5331
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.

Re:[96]關於ex13-20的JNDI

文章cary205 » 週六 5月 31, 2008 4:16 pm

呵呵~
剛剛我用 grant all on *.* to root@b2dsvr; 設定完後
再去 "B2D主設定" 設定管理密碼= bv1al

圖檔

Tomcat 成功的和資料庫連結了!!!
圖檔

不過 Resin 怎麼說 Using password: NO ??
他是說我沒有設定密碼嗎??
可是我已經用 "B2D主設定" 設定管理密碼= bv1al
resin.conf 也有加上 password 了ㄟ
就算重新開啟resin也是一樣Using password: NO
重新開啟 Resin 應該會 reload conf 檔吧...

圖檔

XO 寫:BTW, 順便提供一下這些指令的結果:
  • hostname
  • dnsdomainname
  • 以及 mysql 資料庫裡 select host,user,password from user;

圖檔

XO 寫:珦柔呀!要不要繼續試...

珦柔 也有遇到類似的問題嗎?? 呵呵~ 我不是 珦柔 喔
附加檔案
screen_03 15.28.jpg
(80.22 KiB) 尚未被下載
resindbno.jpg
(46.1 KiB) 尚未被下載
tomdbok.jpg
(94.71 KiB) 尚未被下載
頭像
cary205
E-Office 小組
 
文章: 50
註冊時間: 週三 9月 13, 2006 2:52 pm

Re:[96]關於ex13-20的JNDI

文章XO » 週六 5月 31, 2008 5:49 pm

cary205 寫:珦柔也有遇到類似的問題嗎??呵呵~我不是珦柔喔


呵呵~~~ 我又張冠李戴囉! :oops: 而且離譜得一踏糊塗... ;)

2008/5/22 下載的筆記 JavaBean.nbk 裡,相關 Resin 設定你有做嗎?

圖檔

上述例子是給 15 章用的,你可以試著依樣畫葫蘆給 13 章也做一個....

不錯唷! 加油!
最後由 XO 於 週一 4月 05, 2010 3:57 pm 編輯,總共編輯了 2 次。
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5331
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.

Re:[96]關於ex13-20的JNDI

文章cary205 » 週六 5月 31, 2008 7:45 pm

XO 寫:2008/5/22 下載的筆記 JavaBean.nbk 裡,相關 Resin 設定你有做嗎?

上述例子是給 15 章用的,你可以試著依樣畫葫蘆給 13 章也做一個....

喔~~!!原來如此阿
我就在想Tomcat的server.xml改密碼的地方有4個
怎麼Resin的resin.conf只有3個地方

是這樣吧:
代碼: 選擇全部
...節錄...
<!-- ========= setting for JSP book example ======================== -->
<web-app id='JspBook'  app-dir='JspBook' />
<web-app id='JspBook/ch10' app-dir='JspBook/ch10' />
[color=red]<web-app id='JspBook/ch13'  app-dir='JspBook/ch13' >
   <resource-ref>
      <res-ref-name>jdbc/BookDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <init-param driver-name="org.gjt.mm.mysql.Driver"/>
      <init-param url="jdbc:mysql://localhost:3306/BookDB?user=root&password=bv1al"/>
   </resource-ref>
</web-app>[/color]
<web-app id='JspBook/ch15'  app-dir='JspBook/ch15' >
   <resource-ref>
      <res-ref-name>jdbc/BookDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <init-param driver-name="org.gjt.mm.mysql.Driver"/>
      <init-param url="jdbc:mysql://localhost:3306/BookDB?user=root[color=red]&password=bv1al[/color]"/>
   </resource-ref>
</web-app>

<web-app id='JspBook/ch16'  app-dir='JspBook/ch16' />
<web-app id='JspBook/ch19'  app-dir='JspBook/ch19' />
<web-app id='class'  app-dir='JspBook/class'/>
<web-app id='store'  app-dir='JspBook/store' >
   <resource-ref>
      <res-ref-name>jdbc/StoreDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <init-param driver-name="org.gjt.mm.mysql.Driver"/>
      <init-param url="jdbc:mysql://localhost:3306/StoreDB?user=root[color=red]&password=bv1al[/color]"/>
   </resource-ref>
</web-app>

<web-app id='eDM'  app-dir='JspBook/eDM'>
   <resource-ref>
      <res-ref-name>jdbc/eDMDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <init-param driver-name="org.gjt.mm.mysql.Driver"/>
      <init-param url="jdbc:mysql://localhost:3306/eDMDB?user=root[color=red]&password=bv1al[/color]"/>
   </resource-ref>
</web-app>
<!-- ========= end of setting for JSP book example =================== -->
...節錄...


不過...還是一樣ㄟ...Using password: NO
圖檔

Resin第15章的範例是OK的
圖檔

-------------------------------------

我剛剛在想是不是autoReconnect=true的關係
因為Tomcat的設定檔裡:
代碼: 選擇全部
<Context path="/JspBook/ch13" docBase="JspBook/ch13"  reloadable="true" crossContext="true">
      <Resource name="jdbc/BookDB" auth="Container"
         type="javax.sql.DataSource"
         description="MySQL Conncetor/J DB JNDI Resource"/>

      <ResourceParams name="jdbc/BookDB">
         <parameter>
            <name>username</name> <value>root</value>
         </parameter>
         <parameter>
            <name>password</name> <value>bv1al</value>
         </parameter>                               
         <parameter>
            <name>driverClassName</name>
            <value>org.gjt.mm.mysql.Driver</value>
         </parameter>

         <parameter>
            <name>url</name>
            <value>jdbc:mysql://localhost:3306/BookDB?[color=red]autoReconnect=true[/color]</value>
         </parameter>
      </ResourceParams>
   </Context>


我把Resin.conf改成
代碼: 選擇全部
<web-app id='JspBook/ch13'  app-dir='JspBook/ch13' >
   <resource-ref>
      <res-ref-name>jdbc/BookDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <init-param driver-name="org.gjt.mm.mysql.Driver"/>
      <init-param url="jdbc:mysql://localhost:3306/BookDB?user=root&password=bv1al[color=red]&autoReconnect=true[/color]"/>
   </resource-ref>
</web-app>


呵呵~~雖然說不知道這樣改對不對
但是最後測試的結果還是不行的...Using password:NO :roll:
附加檔案
re15ok.jpg
(81.21 KiB) 尚未被下載
頭像
cary205
E-Office 小組
 
文章: 50
註冊時間: 週三 9月 13, 2006 2:52 pm

Re:[96]關於ex13-20的JNDI

文章cary205 » 週六 5月 31, 2008 9:22 pm

呵呵~~
我把設定改成跟教室一樣之後...

也就是把伺服器設定檔的資料庫密碼拿掉
以及把root@b2dsvr的密碼設為空值

第13章的範例
無論是Tomcat或是Resin
都可以正常跑了~~!! :lol:

可是樓上那篇問題的原因我還是沒找到 :roll:
頭像
cary205
E-Office 小組
 
文章: 50
註冊時間: 週三 9月 13, 2006 2:52 pm

Re:[96]關於ex13-20的JNDI

文章XO » 週六 5月 31, 2008 10:43 pm

設定檔改完,Resin Server 有沒重新關閉再啟動呀?
最後由 XO 於 週一 4月 05, 2010 3:58 pm 編輯,總共編輯了 1 次。
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5331
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.

Re:[96]關於ex13-20的JNDI

文章cary205 » 週六 5月 31, 2008 11:32 pm

XO 寫:設定檔改完,Resin Server 有沒重新關閉再啟動呀?


有ㄟ~~我還有試過重新開機(B2D)再開Resin~~
頭像
cary205
E-Office 小組
 
文章: 50
註冊時間: 週三 9月 13, 2006 2:52 pm

Re:[96]關於ex13-20的JNDI

文章XO » 週日 6月 01, 2008 9:59 am

如果錯誤的訊息依舊是:"Access denied for user: 'root@b2dsvr' (Using password: NO)" 的話...
這句話是說「權限不對」... 顯然執行瀏覽 JNDI.jsp 程式時,還是認定採用 root@b2dsvr 帳號+密碼為「空的」。

我有兩個揣測:一個是你曾經在 JspBook/WEB-INF/web.xml 設定過,這邊的設定是對 JspBook 這個 Application 有效的,設在
conf 資料夾底下的 resin.conf 則是對整個 Resin Server 的 Appliactions 有效的。AP 個別設定優於對整體 Resin Server 的設定。

另一種可能也是揣測(自己沒去試過):原先設定經過產生 .java 且編譯成 .class 後,在變更設定檔之後,認為沒「變動過」,沒再
重新來過一次... 如果是這個,可以試試下面指令:

代碼: 選擇全部
touch /usr/resin-2.1.12/doc/JspBook/ch13/ex13-20/JNDI.jsp


這 touch 是「觸碰」的意思,他會把 JNDI.jsp 檔案的最後變更時間變成「觸碰」當時,之後再去瀏覽應該就會重新產生 .java 且
編譯成 .class 檔案。
最後由 XO 於 週一 4月 05, 2010 3:58 pm 編輯,總共編輯了 2 次。
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5331
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.

Re:[96]關於ex13-20的JNDI

文章XO » 週日 6月 01, 2008 10:08 am

cary205 寫:也就是把伺服器設定檔的資料庫密碼拿掉
以及把root@b2dsvr的密碼設為空值


你說:「把伺服器設定檔的資料庫密碼」你這是指?
該不會是去跑 b2d-setup 吧?

如果只是要在 MySQL 資料庫內把 root@b2dsvr 帳號的密碼設為空值:只需下 SQL 去 update user table 或是用 Grant 指令即可。
那個 b2d server 的 b2d-setup 腳本,變動的不只是 MySQL sever 的管理帳號密碼,還會去動到其他這台機器上 Server 的密碼。
不光是如此哪個腳本還會改變 iptable 防火牆設定....
最後由 XO 於 週一 4月 05, 2010 3:59 pm 編輯,總共編輯了 3 次。
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5331
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.

Re:[96]關於ex13-20的JNDI

文章cary205 » 週日 6月 01, 2008 2:17 pm

呵哈哈~~:lol:

我終於發現為啥/usr/jakarta-tomcat-5.0.18/conf/server.xml改密碼的地方有4
而/usr/resin-2.1.12/conf/resin.conf只有3個地方

因為Resin預設把第13章JNDI的設定放在/usr/resin-2.1.12/doc/JspBook/ch13/WEB-INF/web.xml
難怪就算在/usr/resin-2.1.12/conf/resin.conf加上第13章的JNDI設定也是無效~~


XO 寫:你說:「把伺服器設定檔的資料庫密碼」你這是指?
該不會是去跑 b2d-setup 吧?


喔~~我的意思是說:
因為原本我有在/usr/resin-2.1.12/conf/resin.conf和/usr/jakarta-tomcat-5.0.18/conf/server.xml加上密碼
以及在b2d-setup設定了管理密碼

為了設定成和教室一樣
我把/usr/resin-2.1.12/conf/resin.conf和/usr/jakarta-tomcat-5.0.18/conf/server.xml密碼拿掉
然後把之前自己新增的Mysql使用者root@b2dsvr的密碼利用指令砍掉:
代碼: 選擇全部
mysql> update user set password="" where host="b2dsvr"&&user="root";
mysql>flush privileges;
頭像
cary205
E-Office 小組
 
文章: 50
註冊時間: 週三 9月 13, 2006 2:52 pm

Re:[96]關於ex13-20的JNDI

文章XO » 週一 6月 02, 2008 8:13 am

cary205 寫:呵哈哈~~:lol:

我終於發現為啥/usr/jakarta-tomcat-5.0.18/conf/server.xml改密碼的地方有4
而/usr/resin-2.1.12/conf/resin.conf只有3個地方

因為Resin預設把第13章JNDI的設定放在/usr/resin-2.1.12/doc/JspBook/ch13/WEB-INF/web.xml
難怪就算在/usr/resin-2.1.12/conf/resin.conf加上第13章的JNDI設定也是無效~~


恭喜!這份鑽研解決問題的毅力與決心,絕對會是你未來成功的一大助力! Keep the good work!
事出必有因,還果然是我前面揣測兩個可能性中的第一個...

XO 寫:我有兩個揣測:一個是你曾經在 JspBook/WEB-INF/web.xml 設定過,這邊的設定是對 JspBook 這個 Application 有效的,設在
conf 資料夾底下的 resin.conf 則是對整個 Resin Server 的 Appliactions 有效的。AP 個別設定優於對整體 Resin Server 的設定。


針對 Application 的設定會 override 對整個 Server 的設定!
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5331
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.


回到 Web程式設計

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 2 位訪客

cron