生活随笔
收集整理的這篇文章主要介紹了
Hibernate Tomcat JNDI数据源配置(转)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
簡述:
配置JNDI 查找Tomcat 中server.xml中定義的數據源
?
步驟:
1. 修改elipse的數據源server.xml
?
主要修改如下,
1. 添加下面這段Context文本 其中StudentManagementWeb是項目名稱
?
[html]?view plaincopy ????<Context?docBase="StudentManagementWeb"?path="/StudentManagementWeb"?reloadable="true"?source="org.eclipse.jst.jee.server:StudentManagementWeb">?? ????????<Resource?name="jdbc/smw"?auth="Container"?type="javax.sql.DataSource"?? maxActive="100"?maxIdle="30"?maxWait="10000"??username="root"?password="sql"?driverClassName="com.mysql.jdbc.Driver"??url="jdbc:mysql://localhost:3306/smw"/>??????</Context>?? ?
?
2.修改項目的web.xml文件
?
添加如下字段,用來查找數據源
?
[plain]?view plaincopy ?<resource-ref>??<description>DB?Connection</description>??<res-ref-name>jdbc/smw</res-ref-name>??<res-type>javax.sql.DataSource</res-type>??<res-auth>Container</res-auth>???</resource-ref>?? ?
?
3. 修改Hibernate配置文件,其中 mapping resourse 為自定義的model對象
?
[html]?view plaincopy <session-factory>??????<property?name="connection.datasource">java:comp/env/jdbc/smw</property>?? ????????<property?name="dialect">?? ????????org.hibernate.dialect.MySQLDialect??????</property>?? ????<property?name="show_sql">true</property> ???? ????<mapping?resource="smw/model/Student.hbm.xml"/>?? ????<mapping?resource="smw/model/CourseSelection.hbm.xml"/>?? ????<mapping?resource="smw/model/Course.hbm.xml"/>?? </session-factory>?? ?
?
4. Hibernate的session builder
?
[plain]?view plaincopy Configuration?cfg?=?new?Configuration().configure();??factory?=?cfg.buildSessionFactory();???//build?Session?Factory?? ?
?
完成上述四步就做到了JNDI查找數據源的配置了
?
下面是四個文件的完整代碼
server.xml
?
[html]?view plaincopy <?xml?version="1.0"?encoding="UTF-8"?>??<!--????Licensed?to?the?Apache?Software?Foundation?(ASF)?under?one?or?more????contributor?license?agreements.??See?the?NOTICE?file?distributed?with????this?work?for?additional?information?regarding?copyright?ownership.????The?ASF?licenses?this?file?to?You?under?the?Apache?License,?Version?2.0????(the?"License");?you?may?not?use?this?file?except?in?compliance?with????the?License.??You?may?obtain?a?copy?of?the?License?at??????????http://www.apache.org/licenses/LICENSE-2.0??????Unless?required?by?applicable?law?or?agreed?to?in?writing,?software????distributed?under?the?License?is?distributed?on?an?"AS?IS"?BASIS,????WITHOUT?WARRANTIES?OR?CONDITIONS?OF?ANY?KIND,?either?express?or?implied.????See?the?License?for?the?specific?language?governing?permissions?and????limitations?under?the?License.??--><!--?Note:??A?"Server"?is?not?itself?a?"Container",?so?you?may?not?? ?????define?subcomponents?such?as?"Valves"?at?this?level.???????Documentation?at?/docs/config/server.html???--><Server?port="8005"?shutdown="SHUTDOWN">?? ???? ??<Listener?SSLEngine="on"?className="org.apache.catalina.core.AprLifecycleListener"/>?? ?? ??<Listener?className="org.apache.catalina.core.JasperListener"/>?? ?? ??<Listener?className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>?? ?? ??<Listener?className="org.apache.catalina.mbeans.ServerLifecycleListener"/>?? ??<Listener?className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>?? ????<!--?Global?JNDI?resources?????????Documentation?at?/docs/jndi-resources-howto.html????-->?? ??<GlobalNamingResources>?? ????<!--?Editable?user?database?that?can?also?be?used?by???????????UserDatabaseRealm?to?authenticate?users??????-->?? ????<Resource?auth="Container"?description="User?database?that?can?be?updated?and?saved"?factory="org.apache.catalina.users.MemoryUserDatabaseFactory"?name="UserDatabase"?pathname="conf/tomcat-users.xml"?type="org.apache.catalina.UserDatabase"/>?? ??</GlobalNamingResources>?? ????<!--?A?"Service"?is?a?collection?of?one?or?more?"Connectors"?that?share?????????a?single?"Container"?Note:??A?"Service"?is?not?itself?a?"Container",??????????so?you?may?not?define?subcomponents?such?as?"Valves"?at?this?level.?????????Documentation?at?/docs/config/service.html?????-->?? ??<Service?name="Catalina">?? ???????? ????<!--??????<Executor?name="tomcatThreadPool"?namePrefix="catalina-exec-"??? ????????maxThreads="150"?minSpareThreads="4"/>?? ????-->?? ????????????????<!--?A?"Connector"?represents?an?endpoint?by?which?requests?are?received???????????and?responses?are?returned.?Documentation?at?:???????????Java?HTTP?Connector:?/docs/config/http.html?(blocking?&?non-blocking)???????????Java?AJP??Connector:?/docs/config/ajp.html???????????APR?(HTTP/AJP)?Connector:?/docs/apr.html???????????Define?a?non-SSL?HTTP/1.1?Connector?on?port?8080??????-->?? ????<Connector?connectionTimeout="20000"?port="8080"?protocol="HTTP/1.1"?redirectPort="8443"/>?? ???? ????<!--??????<Connector?executor="tomcatThreadPool"?? ???????????????port="8080"?protocol="HTTP/1.1"??? ???????????????connectionTimeout="20000"??? ???????????????redirectPort="8443"?/>?? ????-->????????????? ????<!--?Define?a?SSL?HTTP/1.1?Connector?on?port?8443???????????This?connector?uses?the?JSSE?configuration,?when?using?APR,?the????????????connector?should?be?using?the?OpenSSL?style?configuration???????????described?in?the?APR?documentation?-->?? ????<!--??????<Connector?port="8443"?protocol="HTTP/1.1"?SSLEnabled="true"?? ???????????????maxThreads="150"?scheme="https"?secure="true"?? ???????????????clientAuth="false"?sslProtocol="TLS"?/>?? ????-->?? ?????? ????<Connector?port="8009"?protocol="AJP/1.3"?redirectPort="8443"/>?? ????????<!--?An?Engine?represents?the?entry?point?(within?Catalina)?that?processes???????????every?request.??The?Engine?implementation?for?Tomcat?stand?alone???????????analyzes?the?HTTP?headers?included?with?the?request,?and?passes?them???????????on?to?the?appropriate?Host?(virtual?host).???????????Documentation?at?/docs/config/engine.html?-->?? ??????<!--?You?should?set?jvmRoute?to?support?load-balancing?via?AJP?ie?:??????<Engine?name="Catalina"?defaultHost="localhost"?jvmRoute="jvm1">??????????? ????-->??? ????<Engine?defaultHost="localhost"?name="Catalina">?? ????????<!--For?clustering,?please?take?a?look?at?documentation?at:????????????/docs/cluster-howto.html??(simple?how?to)????????????/docs/config/cluster.html?(reference?documentation)?-->?? ?????? ????????<!--?The?request?dumper?valve?dumps?useful?debugging?information?about?????????????the?request?and?response?data?received?and?sent?by?Tomcat.?????????????Documentation?at:?/docs/config/valve.html?-->?? ?????? ????????<!--?This?Realm?uses?the?UserDatabase?configured?in?the?global?JNDI?????????????resources?under?the?key?"UserDatabase".??Any?edits?????????????that?are?performed?against?this?UserDatabase?are?immediately?????????????available?for?use?by?the?Realm.??-->?? ??????<Realm?className="org.apache.catalina.realm.UserDatabaseRealm"?resourceName="UserDatabase"/>?? ????????<!--?Define?the?default?virtual?host?????????????Note:?XML?Schema?validation?will?not?work?with?Xerces?2.2.?????????-->?? ??????<Host?appBase="webapps"?autoDeploy="true"?name="localhost"?unpackWARs="true"?xmlNamespaceAware="false"?xmlValidation="false">?? ??????????<!--?SingleSignOn?valve,?share?authentication?between?web?applications???????????????Documentation?at:?/docs/config/valve.html?-->?? ???????? ??????????<!--?Access?log?processes?all?example.???????????????Documentation?at:?/docs/config/valve.html?-->?? ????????<!--??????????<Valve?className="org.apache.catalina.valves.AccessLogValve"?directory="logs"???? ???????????????prefix="localhost_access_log."?suffix=".txt"?pattern="common"?resolveHosts="false"/>?? ????????-->?? ????????<Context?docBase="StudentManagementWeb"?path="/StudentManagementWeb"?reloadable="true"?source="org.eclipse.jst.jee.server:StudentManagementWeb">?? ????????<Resource?name="jdbc/smw"?auth="Container"?type="javax.sql.DataSource"?? ????????maxActive="100"?maxIdle="30"?maxWait="10000"?? ????????username="root"?password="sql"?driverClassName="com.mysql.jdbc.Driver"?? ????????url="jdbc:mysql://localhost:3306/smw"/>?? ??????</Context>?? ??????</Host>?? ????</Engine>?? ??</Service>?? </Server>??
web.xml
?
?
[plain]?view plaincopy <?xml?version="1.0"?encoding="UTF-8"?>??<web-app?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?xmlns="http://java.sun.com/xml/ns/javaee"?xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"?xsi:schemaLocation="http://java.sun.com/xml/ns/javaee?http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"?id="WebApp_ID"?version="2.5">????<display-name>StudentManagementWeb</display-name>????<welcome-file-list>??????<welcome-file>Login.jsp</welcome-file>????</welcome-file-list>????????<resource-ref>??????<description>DB?Connection</description>??????<res-ref-name>jdbc/smw</res-ref-name>??????<res-type>javax.sql.DataSource</res-type>??????<res-auth>Container</res-auth>????</resource-ref>????????<context-param>???????<param-name>log4jConfigLocation</param-name>???????<param-value>/WEB-INF/log4j.properties</param-value>?????</context-param>?????????<!--?Define?LOG4J?Listener?-->?????<listener>??????<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>?????</listener>?????????<servlet>????<!--?define?the?name?of?Servlet?-->????<servlet-name>dispatcherServlet</servlet-name>????<!--?Servlet?implementation?class?-->????<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>????<!--?initialize?the?context?-->????<init-param>????<param-name>contextConfigLocation</param-name>????<!--?load?configuration?-->????<param-value>/WEB-INF/applicationContext.xml</param-value>????</init-param>????<!--?set?loading?priority?-->????<load-on-startup>1</load-on-startup>????</servlet>????<servlet-mapping>????<servlet-name>dispatcherServlet</servlet-name>????<url-pattern>*.do</url-pattern>????</servlet-mapping>??????</web-app>??
hibernate.cfg.xml
?
?
[html]?view plaincopy <?xml?version='1.0'?encoding='UTF-8'?>??<!DOCTYPE?hibernate-configuration?PUBLIC????????????"-//Hibernate/Hibernate?Configuration?DTD?3.0//EN"????????????"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">?? ??<hibernate-configuration>????????<session-factory>?? <!--?????????<property?name="dialect">Database?Dialect?? ????????????org.hibernate.dialect.MySQLDialect??????????</property>?? ????????<property?name="connection.url">URL?of?the?database?? ????????????jdbc:mysql://localhost:3306/smw??????????</property>?? ????????<property?name="connection.username">root</property>user?name?? ????????<property?name="connection.password">sql</property>password?? ????????<property?name="connection.driver_class">connect?driver?? ????????????com.mysql.jdbc.Driver??????????</property>?-->?? ????????<property?name="connection.datasource">java:comp/env/jdbc/smw</property>?? ????????<property?name="dialect">?? ????????????org.hibernate.dialect.MySQLDialect??????????</property>?? ????????<property?name="show_sql">true</property> ???????? ????????<mapping?resource="smw/model/Student.hbm.xml"/>?? ????????<mapping?resource="smw/model/CourseSelection.hbm.xml"/>?? ????????<mapping?resource="smw/model/Course.hbm.xml"/>?? ????</session-factory>?? ??</hibernate-configuration>??
HibernateUtil.java
?
?
[java]?view plaincopy package?smw.utils;????import?org.hibernate.Session;??import?org.hibernate.SessionFactory;??import?org.hibernate.cfg.Configuration;????public?class?HibernateUtil?{??????private?static?SessionFactory?factory;?? ????static{?? ????????try{?? ????????????Configuration?cfg?=?new?Configuration().configure();?? ????????????factory?=?cfg.buildSessionFactory();??? ????????}catch(Exception?e){?? ????????????System.out.println("static?of?HibernateUtil:?"?+?e.getMessage());?? ????????}??????}???????????? ????public?static?SessionFactory?getSessionFactory(){?? ????????return?factory;?? ????}???????????? ????public?static?Session?getSession(){?? ????????return?factory.openSession();?? ????}???????????? ????public?static?void?closeSession(Session?session){?? ????????if(session?!=?null){?? ????????????if(session.isOpen()){?? ????????????????session.close();??????????????}??????????}??????}??}??
http://blog.csdn.net/anialy/article/details/8237448
總結
以上是生活随笔為你收集整理的Hibernate Tomcat JNDI数据源配置(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。