有關jsp+struts+hibernate+MSSQLServer項目中Tomcat5的server.xml配置

來源:互聯網
上載者:User

我曾經在網上搜尋過很多時間一直發現jsp+sqlserver2000項目開發的例子比較少,在tomcat5中配置server.xml便成為一個難題,因為tomcat相關網站都有大量mysql和oracle的配置例子,卻很少有sqlserver的例子。

今天我就把我研究的經驗共用出來。這個是部署在linux上的。
本文著中告訴大家怎麼配置server.xml,使得能夠順利讀取sqlserver資料庫,其他有關struts,hibernate怎麼使用,請看相關網站的資料。

首先要到微軟網站上下載sqlserver的java補丁包,這個補丁解開後將mssqlserver.jar  msbase.jar  msutil.jar三個檔案拷貝到WEB-LIB/lib目錄中;
然後配置server.xml,如下:(請注意將裡面的中文改成你需要的)

<?xml version='1.0' encoding='utf-8'?>
<Server>
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <GlobalNamingResources>
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
    <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
    <ResourceParams name="UserDatabase">
      <parameter>
        <name>factory</name>
        <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
      </parameter>
      <parameter>
        <name>pathname</name>
        <value>conf/tomcat-users.xml</value>
      </parameter>
    </ResourceParams>
  </GlobalNamingResources>
  <Service name="Catalina">
    <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="80" redirectPort="8443">
    </Connector>
    <Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
    </Connector>
    <Engine defaultHost="這裡寫主機名稱,例如 bbs.abc.com中的bbs" name="Catalina">
  <Host name="這裡寫網域名稱,例如www.abc.com中" debug="0" appBase="這裡寫web目錄的絕對路徑/opt/tomcat/webapps/abc"
     unpackWARs="true" autoDeploy="true">
    
   <Valve className="org.apache.catalina.valves.AccessLogValve"
      directory="logs"  prefix="sentom1_access_log." suffix=".txt"
      pattern="common" resolveHosts="false"/>

   <Logger className="org.apache.catalina.logger.FileLogger"
      directory="logs"  prefix="sentom1_log." suffix=".txt"
      timestamp="true"/>
   <Context path="" docBase="">
    <Resource name="這裡寫jndi聯結,例如jdbc/abc" scope="Shareable" auth="Container"  type="這裡寫ms sqlserver資料庫使用的類:com.microsoft.jdbcx.sqlserver.SQLServerDataSource"/>
    <ResourceParams name="這裡寫jndi聯結,例如jdbc/abc">
     <parameter>
      <name>factory</name>
      <value>com.microsoft.jdbcx.sqlserver.SQLServerDataSourceFactory</value>
     </parameter>

     <!-- DBCP database connection settings -->

     <parameter>
      <name>driverClassName</name><value>com.microsoft.jdbcx.sqlserver.SQLServerDataSource</value>
     </parameter>
       <parameter><name>driverName</name><value>SQLServer</value></parameter>
       <parameter><name>description</name><value>SQL Server DataSource</value></parameter>
       <parameter><name>serverName</name><value>這裡寫伺服器ip地址</value></parameter>
       <parameter><name>portNumber</name><value>這裡寫sqlserver連接埠號碼,一般來說寫:1433</value></parameter>
       <parameter><name>selectMethod</name><value>cursor</value></parameter>
       <parameter><name>databaseName</name><value>這裡寫sqlserver使用的資料庫名稱</value></parameter>
       <parameter><name>user</name><value>這裡寫有sqlserver資料庫中的使用者名稱,必須對相關資料庫有讀寫權限</value></parameter>
       <parameter><name>password</name><value>這裡寫密碼</value></parameter>
       <parameter><name>loginTimeout</name><value>3000</value></parameter>
       <!-- DBCP connection pooling options -->
     <parameter><name>maxWait</name><value>3000</value></parameter>
     <parameter><name>maxIdle</name><value>100</value></parameter>
     <parameter><name>maxActive</name><value>10</value></parameter>
    </ResourceParams>
   </Context>

  </Host>
  以下可以再寫一個二級網站,讀取另一個資料庫。
  <Host name="這裡寫二級網站網域名稱。例如:news.abc.com" debug="0" appBase="這裡寫web目錄的絕對路徑/opt/tomcat/webapps/news"
     unpackWARs="true" autoDeploy="true">
    
   <Valve className="org.apache.catalina.valves.AccessLogValve"
      directory="logs"  prefix="sentom1_access_log." suffix=".txt"
      pattern="common" resolveHosts="false"/>

   <Logger className="org.apache.catalina.logger.FileLogger"
      directory="logs"  prefix="sentom1_log." suffix=".txt"
      timestamp="true"/>
   <Context path="" docBase="">
   <Resource name="這裡寫jndi名稱:jdbc/news" scope="Shareable" auth="Container"  type="com.microsoft.jdbcx.sqlserver.SQLServerDataSource"/>
   <ResourceParams name="這裡寫jndi名稱:jdbc/news">
    <parameter>
     <name>factory</name>
     <value>com.microsoft.jdbcx.sqlserver.SQLServerDataSourceFactory</value>
    </parameter>

    <!-- DBCP database connection settings -->

    <parameter>
     <name>driverClassName</name><value>com.microsoft.jdbcx.sqlserver.SQLServerDataSource</value>
    </parameter>
      <parameter><name>driverName</name><value>SQLServer</value></parameter>
      <parameter><name>description</name><value>SQL Server DataSource</value></parameter>
      <parameter><name>serverName</name><value>資料庫ip地址</value></parameter>
          <parameter><name>portNumber</name><value>連接埠號碼:1433</value></parameter>
      <parameter><name>selectMethod</name><value>cursor</value></parameter>
      <parameter><name>databaseName</name><value>資料庫名</value></parameter>
      <parameter><name>user</name><value>使用者名稱</value></parameter>
      <parameter><name>password</name><value>密碼</value></parameter>
      <parameter><name>loginTimeout</name><value>3000</value></parameter>
      <!-- DBCP connection pooling options -->
    <parameter><name>maxWait</name><value>3000</value></parameter>
    <parameter><name>maxIdle</name><value>100</value></parameter>
    <parameter><name>maxActive</name><value>10</value></parameter>
   </ResourceParams>
  </Context>

   </Host>

      <Host appBase="webapps" name="localhost">
        <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
      </Host>
      <Host name="這裡可以寫上另一個主機名稱,例如寫:www" appBase="/opt/tomcat/webapps/www">
  <!--Alias>www.spitrade.com</Alias-->
 

      </Host>
      <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
    </Engine>
  </Service>
</Server>

然後配置hibernate.cfg.xml(如下):
注意java:comp/env/jdbc/news要和server.xml中的有關jndi的ResourceParams參數一致。

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration
    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">

<hibernate-configuration>

    <session-factory>

        <property name="connection.datasource">java:comp/env/jdbc/news</property>
        <property name="show_sql">true</property>
        <property name="dialect">net.sf.hibernate.dialect.SQLServerDialect</property>

        <!-- Mapping files -->
       
  <mapping resource="News.hbm.xml"/>

    </session-factory>

</hibernate-configuration>

好了,基本就配置成功了。
如果有什麼問題,請大家討論。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.