廉頗老矣,尚能飯否

          java:從技術到管理

          常用鏈接

          統計

          最新評論

          tomcat6學習筆記( 包括和apache2的集成,集群,SSI,SSL,安全域,嵌入應用程序,訪問控制平臺和管理平臺)

          最近通過孫衛琴的《tomcat與java web開發技術詳解(第二版)》學習了tomcat6,并對部分內容做了點筆記,現在分享給大家,難免殘缺和粗糙,望見諒。
          一.訪問tomcat的控制平臺和管理平臺
          首先下載tomcat6:進入 http://www.apache.org/ 點擊 tomcat項目進入 http://tomcat.apache.org/ 點擊download下的tomcat6.x進入 http://tomcat.apache.org/download-60.cgi 選擇 Binary Distributions 下的core下的 zip,下載后為 apache-tomcat-6.0.18.zip 文件,解壓后為 apache-tomcat-6.0.18,可以直接啟動,不需要安裝,訪問  http://localhost:8080 可以測試是否成功
          1.訪問控制平臺: tomcat自帶了manager項目來管理平臺,但是在tomcat-users.xml中沒有定義角色和用戶,所以只需要修改該文件就可以了
          修改前:
          <?xml version='1.0' encoding='utf-8'?>
          <tomcat-users>
          </tomcat-users>
          修改后:
          <?xml version='1.0' encoding='utf-8'?>
          <tomcat-users>
            <role rolename="manager"/>
            <user username="tomcat" password="tomcat" roles="manager"/>
          </tomcat-users>
          啟動tomcat后訪問 http://localhost:8080 成功,訪問 http://localhost:8080/manager/html  成功

          2.訪問控制平臺:實際就是tomcat的server.xml配置文件配置的可視化操作,tomcat6已經不帶該項目了,需要先到apache官網下載,下載過程和下載tomcat6類似,先找到tomcat,然后找到5.5版本,最后選擇 Administration Web Application 下的zip,下載文件是 apache-tomcat-5.5.27-admin.zip ,解壓后為 apache-tomcat-5.5.27,將apache-tomcat-5.5.27\server\webapps下的admin文件夾復制粘貼到tomcat的webapps目錄下,將apache-tomcat-5.5.27\conf下的Catalina目錄復制粘貼到tomcat的conf目錄下,最后是修改tomcat-user.xml文件來添加用戶和角色,原因和過程同上,修改后文件內容如下
          <?xml version='1.0' encoding='utf-8'?>
          <tomcat-users>
            <role rolename="manager"/>
            <role rolename="admin"/>
            <user username="tomcat" password="tomcat" roles="manager,admin"/>
          </tomcat-users>
          修改文件apache-tomcat-6.0.18\webapps\admin下的admin.xml,將
          <Context docBase="${catalina.home}/server/webapps/admin" privileged="true"
                   antiResourceLocking="false" antiJARLocking="false">
          改成
          <Context docBase="${catalina.home}/webapps/admin" privileged="true"
                   antiResourceLocking="false" antiJARLocking="false">
          相同方式修改apache-tomcat-6.0.18\conf\Catalina\localhost下的admin.xml文件

          項目運行需要兩個jar文件:commons-logging.jar 和 commons-modeler.jar ,需要到apache網站下載
          下載commons-logging的過程是:登錄 http://www.apache.org/ ,找到commons項目后點擊進入 http://commons.apache.org/  頁面,找到Components下的logging點擊后進入 http://commons.apache.org/logging/,點擊 Commons logging 下的download進入 http://commons.apache.org/downloads/download_logging.cgi 下載頁面。然后下載 Binary下的1.1.1.zip,下載后解壓,將其中的 commons-logging-1.1.1.jar 復制粘貼到tomcat下的lib目錄下
          下載 commons-modeler-2.0.1.jar的過程大致相同,訪問 http://commons.apache.org/downloads/download_modeler.cgi
          啟動tomcat后訪問 http://localhost:8080 成功,訪問 http://localhost:8080/admin  成功

          二.將tomcat集成到apache2服務器上

          首先安裝apache2:登錄 http://www.apache.org/ 點擊 HTTP Server 項目,進入 http://httpd.apache.org/ ,選擇download下的froma mirror后進入 http://httpd.apache.org/download.cgi 頁面,選擇 Apache HTTP Server 2.2.11 is the best available version 下的 Win32 Binary without crypto (no mod_ssl) (MSI Installer): apache_2.2.11-win32-x86-no_ssl.msi ,文件名稱是apache_2.2.11-win32-x86-no_ssl.msi,下載后為apache_2.2.11-win32-x86-no_ssl.msi。雙擊安裝,一切默認安裝就行了
          安裝后訪問 http://localhost,如果出現提示頁面告訴你apache已經開始工作就說明成功了
          首先下載mod_jk.so:進入 http://www.apache.org/ 點擊 tomcat項目進入 http://tomcat.apache.org/ 點擊download下的Tomcat Connectors 進入 http://tomcat.apache.org/download-connectors.cgi 選擇Tomcat Connectors JK 1.2下的Binary Releases 進入 http://labs.xiaonei.com/apache-mirror/tomcat/tomcat-connectors/jk/binaries/頁面,點擊win32進入 http://labs.xiaonei.com/apache-mirror/tomcat/tomcat-connectors/jk/binaries/win32/頁面,點擊版本jk-1.2.28/ 進入http://labs.xiaonei.com/apache-mirror/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.28/頁面,點擊mod_jk-1.2.28-httpd-2.0.52.so  ,下載文件為mod_jk-1.2.28-httpd-2.0.52.so 下載后為 mod_jk-1.2.28-httpd-2.0.52.so文件,可以改名為mod-jk.so。
          1.拷貝mod_jk.so插件到apache2的modules目錄

          2.在apache2的conf目錄下新建worker.properties文件,內容如下
          worker.list=worker1
          worker.worker1.port=8009  #工作端口,若沒占用則不用修改
          worker.worker1.host=localhost  #Tomcat服務器的地址
          worker.worker1.type=ajp13  #類型
          worker.worker1.lbfactor=1  #負載平衡因數

          3.在apache2的conf目錄下修改httpd.conf文件,在后面追加內容如下
          # Using mod_jk.so to redirect dynamic calls to Tomcat
          LoadModule  jk_module  modules/mod_jk.so
          JkWorkersFile  conf/workers.properties
          JkLogFile  logs/mod_jk.log
          JkLogLevel  debug
          JkMount  /*.jsp  worker1
          JkMount  /manager/*  worker1

          4.測試時輸入http://localhost/manager/html成功運行

          三.使用一個apache2和兩個tomcat6配置tomcat集群
          1.拷貝mod_jk.so插件到apache2的modules目錄

          2.在apache2的conf目錄下新建worker.properties文件,內容如下
          worker.list=worker1,worker2,loadbalancer

          worker.worker1.port=8009  #工作端口,若沒占用則不用修改
          worker.worker1.host=localhost  #Tomcat服務器的地址
          worker.worker1.type=ajp13  #類型
          worker.worker1.lbfactor=100  #負載平衡因數

          worker.worker2.port=8109  #工作端口,若沒占用則不用修改
          worker.worker2.host=localhost  #Tomcat服務器的地址
          worker.worker2.type=ajp13  #類型
          worker.worker2.lbfactor=100  #負載平衡因數

          worker.loadbalancer.type=lb
          worker.loadbalancer.balanced_workers=worker1, worker2
          worker.loadbalancer.sticky_session=false
          worker.loadbalancer.sticky_session_force=false

          3.在apache2的conf目錄下修改httpd.conf文件,在后面追加內容如下
          # Using mod_jk.so to redirect dynamic calls to Tomcat
          LoadModule jk_module modules/mod_jk.so
          JkWorkersFile conf/workers.properties
          JkLogFile logs/mod_jk.log
          JkLogLevel debug
          JkMount /*.jsp loadbalancer
          JkMount /manager/* loadbalancer

          4.復制兩個免安裝的tomcat,把其中一個的server.xml文件修改成
          Server port="8105"
          Connector port="8180"
          <Connector port="8109" protocol="AJP/1.3" redirectPort="8443" />
          兩個文件的engine元素都要添加jmvRoute屬性,分別是worker1和worker2
          比如 <Engine name="Catalina" defaultHost="localhost" jmvRoute="worker2">
          5.新建文件test.jsp,內容如下
          <html>
          <head>
            <title>helloapp</title>
          </head>
          <body>
          <%
          System.out.println("call test.jsp");
          %>  
          SessionID: <%=session.getId() %> 
          </body>
          </html>
          在兩個tomcat的webapps目錄下的manager項目文件夾下分別復制粘貼一個文件test.jsp
          6.測試時輸入http://localhost/manager/test.jsp成功運行,問題在于session不唯一
          ====================================
          下面解決session的唯一問題
          7.在每個tomcat的server.xml文件中的engine元素下都添加如下內容
          <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                           channelSendOptions="8">

            <Manager className="org.apache.catalina.ha.session.DeltaManager"
                             expireSessionsOnShutdown="false"
                             notifyListenersOnReplication="true"/>
            <Channel className="org.apache.catalina.tribes.group.GroupChannel">
              <Membership className="org.apache.catalina.tribes.membership.McastService"
                                  bind="127.0.0.1" 
                                  address="228.0.0.4"
                                  port="45564"
                                  frequency="500"
                                  dropTime="3000"/>
              <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                                address="auto"
                                port="4000"
                                autoBind="100"
                                selectorTimeout="5000"
                                maxThreads="6"/>
              <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
                  <Transport  className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
              </Sender>
             
              <Interceptor  className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
              <Interceptor  className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
            </Channel>

            <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
            <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

            <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
                              tempDir="/tmp/war-temp/"
                              deployDir="/tmp/war-deploy/"
                              watchDir="/tmp/war-listen/"
                              watchEnabled="false"/>

            <ClusterListener  className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
            <ClusterListener  className="org.apache.catalina.ha.session.ClusterSessionListener"/>

          </Cluster>   

          8.在每個tomcat的webapps下的web應用的web.xml文件中添加如下內容
          <distributeable/>
          9.重新測試session唯一

           四.配置tomcat的Server Side include (SSI)
          1.因為tomcat6的lib文件夾中沒有servlet-ssi.jar,所以從tomcat5.5的lib文件夾中復制servlet-ssi.renametojar粘貼到tomcat6的lib中并改名為servlet-ssi.jar
          2.將tomcat6的web.xml文件中的兩處注釋掉的內容取消注釋,打開tomcat服務器的ssi功能
          第一處
              <servlet>
                  <servlet-name>ssi</servlet-name>
                  <servlet-class>
                    org.apache.catalina.ssi.SSIServlet
                  </servlet-class>
                  <init-param>
                    <param-name>buffered</param-name>
                    <param-value>1</param-value>
                  </init-param>
                  <init-param>
                    <param-name>debug</param-name>
                    <param-value>0</param-value>
                  </init-param>
                  <init-param>
                    <param-name>expires</param-name>
                    <param-value>666</param-value>
                  </init-param>
                  <init-param>
                    <param-name>isVirtualWebappRelative</param-name>
                    <param-value>0</param-value>
                  </init-param>
                  <load-on-startup>4</load-on-startup>
              </servlet>
          第二處
              <servlet-mapping>
                  <servlet-name>ssi</servlet-name>
                  <url-pattern>*.shtml</url-pattern>
              </servlet-mapping>

          3.新建文件sample.shtml,并將文件復制粘貼到tomcat的webapps目錄的manager項目文件夾下,
          sample.shtml文件內容如下
          <html>
          <head><title>my first SSI page</title></head>
          <body>
          歡迎您于(<!--#echo var="DATE_LOCAL" -->)訪問本網站。
          </body>
          </html>
          4.修改manager項目的META-INF文件夾下的context.xml文件

          <Context relodable="true" />
          改成
          <Context relodable="true"  privileged="true" />
          5.訪問
          http://localhost:8080/manager/sample.shtml

          五.配置tomcat的Server Socket Layer(SSL)
          1.使用sun公司的tookey工具制作個人證書,在jdk的bin文件夾中有

          證書制作
          cmd進入ms-dos窗口
          Microsoft Windows XP [版本 5.1.2600]
          (C) 版權所有 1985-2001 Microsoft Corp.

          C:\Documents and Settings\100554>cd\

          C:\>cd C:\Program Files\Java\jdk1.6.0_07\bin

          C:\Program Files\Java\jdk1.6.0_07\bin>keytool -genkey -alias tomcat -keyalg RSA
          -keypass changeit -storepass changeit -keystore d:\server.keystore -validity 3000
          您的名字與姓氏是什么?
            [Unknown]:  ellen
          您的組織單位名稱是什么?
            [Unknown]:  xinxihua
          您的組織名稱是什么?
            [Unknown]:  jianlong
          您所在的城市或區域名稱是什么?
            [Unknown]:  fengtai
          您所在的州或省份名稱是什么?
            [Unknown]:  beijing
          該單位的兩字母國家代碼是什么
            [Unknown]:  cn
          CN=ellen, OU=xinxihua, O=jianlong, L=fengtai, ST=beijing, C=cn 正確嗎?
            [否]:  y

          C:\Program Files\Java\jdk1.6.0_07\bin>

          2.配置tomcat的server.xml文件
           <Connector className="org.apache.coyote.tomcat6.CoyoteConnector"
                                   port="8443" minProcessors="5"
                                   maxProcessors="75" enableLookups="true"
                                   acceptCount="100"
                                   protocol="HTTP/1.1" SSLEnabled="true"
                         maxThreads="150" scheme="https" secure="true"
                         clientAuth="false" sslProtocol="TLS"
                         keystoreFile="D:/server.keystore"
                         keystorePass="changeit" />

          3啟動ie瀏覽器(不同的瀏覽器有區別),訪問 https://localhost:8433 (注意是https,不是http;是8433,不是8080)

           六.將tomcat嵌入到應用程序中

          原書的demo運行繁瑣,這里改變的主要是編譯環境,并部署了一個web項目做進一步的實驗
          1.下載一個免安裝的tomcat服務器,改名tomcat并放在f盤根目錄
          2.啟動MyEclipse,已經集成了tomcat,新建一個名為hellodemo的javaWeb應用,運行無誤后導出為名為hellodemo的war包。
          并將hellodemo.war復制粘貼到f:\tomcat\webapps目錄下
          3.將MyEclipse的tomcat禁用掉,新建一個java項目,注意不是web項目,名稱是tomcatdemo,在src下的pkg包中新建一個java類,代碼如下
          package pkg;
          import java.net.InetAddress;

          import org.apache.catalina.Context;
          import org.apache.catalina.Engine;
          import org.apache.catalina.Host;
          import org.apache.catalina.connector.Connector;
          import org.apache.catalina.startup.Embedded;

          public class EmbeddedTomcat {

            private String path = null;
            private Embedded embedded = null;
            private Host host = null;

            public EmbeddedTomcat() { }

            /** 設置Tomcat的根路徑 */
            public void setPath(String path) {
              this.path = path;
            }

            /** 返回Tomcat的根路徑 */
            public String getPath() {
              return path;
            }

            /** 啟動Tomcat服務器 */
            public void startTomcat() throws Exception {

              Engine engine = null;

              //設置catalina.home系統屬性
              System.setProperty("catalina.home", getPath());

              //創建嵌入式Tomcat服務器
              embedded = new Embedded();

              //創建Engine實例
              engine = embedded.createEngine();
              engine.setDefaultHost("localhost");

              //創建默認的Host實例
              host = embedded.createHost("localhost", getPath() + "/webapps");
              engine.addChild(host);

              //創建ROOT context
              Context context = embedded.createContext("",  getPath() + "webapps/ROOT");
              host.addChild(context);

              //創建examples context
              Context examplesContext = embedded.createContext("/examples",
               getPath() + "webapps/examples");
              host.addChild(examplesContext);
              /****************************************************/
              //創建hellodemo context 
              Context hellodemo= embedded.createContext("/hellodemo",
               getPath() + "webapps/hellodemo");
              host.addChild(hellodemo);
              /****************************************************/

              //把Engine實例加入到嵌入式Tomcat服務器
              embedded.addEngine(engine);

              //創建和安裝默認的HTTP connector
              InetAddress addr=null;
              Connector connector = embedded.createConnector(addr, 8080, false);
              embedded.addConnector(connector);

              //啟動嵌入式Tomcat服務器
              embedded.start();
            }

            /** 終止嵌入式Tomcat服務器  */
            public void stopTomcat() throws Exception {
              embedded.stop();
            }

            public static void main(String args[]) {
              try {
                EmbeddedTomcat tomcat = new EmbeddedTomcat();
                String rootpath="f:/tomcat/";
                tomcat.setPath(rootpath);
                tomcat.startTomcat();
                Thread.sleep(1000*60*5); //睡眠5分鐘
                tomcat.stopTomcat();
                System.exit(0);
              }
              catch( Exception e ) {
                e.printStackTrace();
              }
            }
          }

          4.將f:\tomcat的lib目錄和bin目錄下的jar包都導入到項目中
          5.運行有main方法的EmbeddedTomcat類。
          6.測試訪問,成功
          http://localhost:8080
          http://localhost:8080/hellodemo/index.jsp

          七.tomcat閥
          1.客戶訪問日志閥
          只修改manager應用的context.xml文件,添加內容如下
          <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
          prefix="ellen_log." suffix=".txt" pattern="%h %l %u %t %r %s %b" resolveHosts="true" />
          保存后啟動tomcat后訪問 http://localhost:8080/manager/html
          tomcat的logs文件夾新建文件ellen_log.txt,文件內容如下
          127.0.0.1 - tomcat [06/May/2009:16:37:10 +0800] GET /manager/html HTTP/1.1 200 13030

          2.遠程地址過濾器
          只修改tomcat的server.xml文件,在host元素內添加如下內容
          <!--Remote Address Filter-->
          <Valve className="org.apache.catalina.valves.RemoteAddrValve"
          deny="127.* , 222.*"/>
          保存后啟動tomcat訪問 http://localhost:8080  http://127.0.0.1:8080 顯示網站拒絕
          修改如下
          <Valve className="org.apache.catalina.valves.RemoteAddrValve"
          allow="127.* , 222.*"/>
          保存后啟動tomcat訪問 http://localhost:8080 http://127.0.0.1:8080頁正常顯示
          如果想實現本機的tomct服務器只允許本機的瀏覽器訪問就可以如此設置
          <Valve className="org.apache.catalina.valves.RemoteAddrValve"
          allow="127.0.0.1*, localhost*"/>

          3.遠程主機過濾器
          只修改tomcat的server.xml文件,在host元素內添加如下內容
          <!--Remote Host Filter-->
          <Valve className="org.apache.catalina.valves.RemoteHostValve"
          deny="monster*"  />
          保存后啟動tomcat訪問 http://localhost:8080  http://127.0.0.1:8080 顯示網站拒絕

          4.客戶請求記錄器
          只修改tomcat的server.xml文件,在host元素內添加如下內容
          <!--Request Dumper-->
          <Valve className="org.apache.catalina.valves.RequestDumperValve" />
          保存后啟動tomcat訪問 http://localhost:8080 每次訪問一次就到logs下查看文件 localhost.2009-05-06.log(日期為當日日期),
          僅僅啟動tomcat后產生的文件內容如下
          2009-5-6 17:18:02 org.apache.catalina.core.ApplicationContext log
          信息: ContextListener: contextInitialized()
          2009-5-6 17:18:02 org.apache.catalina.core.ApplicationContext log
          信息: SessionListener: contextInitialized()
          第一次訪問后追加了如下內容(略)


          八.tomcat安全域
          分類:內存域MemoryRealm;JDBC域JDBCRealm;數據源域DataSourceRealm;JNDI域JNDIRealm;JAAS域JAASRealm
          三種登錄方式
           <!--  BASIC authentication -->
           <login-config>
            <auth-method>BASIC</auth-method>
            <realm-name>ellen realm</realm-name>
           </login-config>

           <!-- DIGEST authentication -->
           <login-config>
            <auth-method>DIGEST</auth-method>
            <realm-name>ellen realm</realm-name>
           </login-config>
           
           <!-- FORM authentication -->
           <login-config>
            <auth-method>FORM</auth-method>
            <realm-name>ellen realm</realm-name>
            <form-login-config>
             <form-login-page>/usercheck.jsp</form-login-page>
             <form-error-page>/error.jsp</form-error-page>
            </form-login-config>
           </login-config>
          使用表單方式必須新建兩個文件 usercheck.jsp(有嚴格的要求) 和 error.jsp(沒有嚴格要求)
          usercheck.jsp
          <html>
          <head>
          <title>Login Page for helloapp</title>
          <body bgcolor="white">
          <form method="POST" action=j_security_check>
            <table border="0" cellspacing="5">
              <tr>
                <th align="right">Username:</th>
                <td align="left"><input type="text" name="j_username"></td>
              </tr>
              <tr>
                <th align="right">Password:</th>
                <td align="left"><input type="password" name="j_password"></td>
              </tr>
              <tr>
                <td align="right"><input type="submit" value="LogIn"></td>
                <td align="left"><input type="reset" value="reset"></td>
              </tr>
            </table>
          </form>
          </body>
          </html>
          內存域
          1.在web應用的WEB-INF目錄下的web.xml文件中配置安全約束
          web.xml文件內容

           <!--指定受保護的資源及訪問的方式和可以訪問的角色-->
           <security-constraint>
            <display-name>
             ellen Configuration Security Constraint
            </display-name>
            <web-resource-collection>
             <web-resource-name>Protected Area</web-resource-name>
             <url-pattern>/*</url-pattern>
            </web-resource-collection>
            <auth-constraint>
             <role-name>guest</role-name>
            </auth-constraint>
           </security-constraint>

           <!--登錄對話框的類型-->
           <login-config>
            <auth-method>BASIC</auth-method>
            <realm-name>ellen realm</realm-name>
           </login-config>
           
           <!--這里的角色和步驟2的角色相同-->
           <security-role>
            <description>
             The role that is required to login to the ellen Application
            </description>
            <role-name>guest</role-name>
           </security-role>

          2.在web應用的METE-INF目錄下的context.xml文件中配置Realm
          context.xml文件內容
          <Context reloadable="true">
           <Realm className="org.apache.catalina.realm.MemoryRealm" />
          </Context>
          3.在tomcat的conf目錄下的tomcat-users.xml文件中定義角色和用戶
          MemoryRealm類從一個xml文件中讀取用戶信息,默認是tomcat的conf目錄下的tomcat-users.xml文件
          tomcat-users.xml文件內容
          <?xml version='1.0' encoding='utf-8'?>
          <tomcat-users>
            <role rolename="guest"/>
            <user username="ellen" password="123" roles="guest"/>
          </tomcat-users>

          JDBC域
          1.和內存域相同
          2.運行數據庫腳本
          數據庫腳本
          create database ellen;
          use ellen;
          create table users(
          user_name varchar(15) not null primary key,
          user_pass varchar(15) not null
          );
          create table user_roles(
          user_name varchar(15) not null,
          role_name varchar(15) not null,
          primary key(user_name,role_name)
          );
          insert into users values("ellen","123");
          insert into user_roles values("ellen","guest");
          3.將數據庫驅動類復制粘貼到tomcat的lib目錄
          4.在web應用的METE-INF目錄下的context.xml文件中配置Realm
          context.xml文件內容
          <Context reloadable="true">
           <Realm className="org.apache.catalina.realm.JDBCRealm"
            driverName="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://localhost/ellen" connectionName="root"
            connectionPassword="root" userTable="users" userNameCol="user_name"
            userCredCol="user_pass" userRoleTable="user_roles"
            roleNameCol="role_name" />
          </Context>

          DataSource域
          1.2.3步和JDBC域相同
          4.在web應用的METE-INF目錄下的context.xml文件中配置Realm
          context.xml文件內容
          <Context reloadable="true">
           <Realm className="org.apache.catalina.realm.JDBCRealm"
            driverName="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://localhost/ellen" connectionName="root"
            connectionPassword="root" userTable="users" userNameCol="user_name"
            userCredCol="user_pass" userRoleTable="user_roles"
            roleNameCol="role_name" />
          </Context>

          JNDI域
          1.2.3步和JDBC域相同
          4.在web應用的METE-INF目錄下的context.xml文件中配置Realm
          context.xml文件內容
          <Context reloadable="true">
           <Realm className="org.apache.catalina.realm.DataSourceRealm"
            dataSourceName="jdbc/ellen" userTable="users" userNameCol="user_name"
            userCredCol="user_pass" userRoleTable="user_roles"
            roleNameCol="role_name" />
          </Context>
          5.在tomcat的conf目錄下的server.xml文件中GlobalNamingResources元素下添加Resource元素
              <Resource name="jdbc/ellen" auth="Container"    type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="root" password="root"
               driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/ellen?autoReconnect=true"/>



          柳德才
          13691193654
          18942949207
          QQ:422157370
          liudecai_zan@126.com
          湖北-武漢-江夏-廟山

          posted on 2009-05-06 15:39 liudecai_zan@126.com 閱讀(1474) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 墨玉县| 榆树市| 抚州市| 潍坊市| 旬邑县| 于田县| 太保市| 金塔县| 和政县| 岑巩县| 浦城县| 龙井市| 伊宁市| 普安县| 崇仁县| 阿图什市| 新晃| 南城县| 涿州市| 兴业县| 新巴尔虎右旗| 嘉义市| 南京市| 辛集市| 灵山县| 通榆县| 太和县| 霍邱县| 翁源县| 剑河县| 蓝田县| 子长县| 剑川县| 阳春市| 班玛县| 西华县| 莱阳市| 平泉县| 盐山县| 锦屏县| 新巴尔虎左旗|