Drei Möglichkeiten zum Konfigurieren einer JNDI-Datenquelle in Tomcat

Drei Möglichkeiten zum Konfigurieren einer JNDI-Datenquelle in Tomcat

In meiner früheren Arbeit war der Entwicklungsserver im Allgemeinen Tomcat.

Die Datenquelle wird häufig durch Konfigurieren einer dataSource-Bean in applicationContext.xml konfiguriert.

Ändern Sie dann die JNDI-Konfiguration während der Bereitstellung

Ich vermute, es liegt daran, dass die Konfiguration von Tomcat geändert werden muss

Im Gegensatz zu JBoss, WebLogic und anderen Servern können Sie JNDI-Datenquellen direkt in der Verwaltungsoberfläche hinzufügen

Nur wenige Menschen studieren seine Konfiguration.

Ich habe vor kurzem ein kleines Projekt gemacht. Als ich die Version veröffentlichte, kompilierte ich sie mit Ant in ein JAR-Paket und testete sie dann.

Der Tester ist der Boss. Ihm wurde beigebracht, die Datenquelle zu ändern, aber er tat so, als hätte er es nicht gehört.

Ich war am Wochenende gelangweilt und habe einige Tomcat-Konfigurationstutorials gelesen. Hier sind einige Zusammenfassungen

Hinweis: Wenn Ihr Projekt direkt unter Webapps abgelegt wird, gibt es in server.xml keinen Kontextknoten, der dem Projekt entspricht

Update: Da einige der vorherigen Konfigurationen aus dem Internet stammten und nicht sehr nützlich waren, wurden einige Updates vorgenommen

Einige persönliche Kommentare zu jeder Methode

PS: Die folgende Konfiguration wurde unter apache-tomcat-6.0.35 getestet und kann auf die Datenbank zugreifen

Der erste Typ ist eine einzelne Anwendung mit exklusiver Datenquelle

Suchen Sie im ersten Schritt nach der Datei server.xml von Tomcat, suchen Sie den Kontextknoten des Projekts und fügen Sie eine private Datenquelle hinzu

<Context docBase="WebApp" Pfad="/WebApp" reloadable="true" Quelle="org.eclipse.jst.jee.server:WebApp">  
<Ressource  
    Name="jdbc/mysql"   
    Umfang="Teilbar"   
    Typ="javax.sql.DataSource"  
    Fabrik="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"  
    url="jdbc:mysql://localhost:3306/test"  
    TreiberKlassenname = "com.mysql.jdbc.Driver"  
    Benutzername="root"  
    Passwort="root"  
/>  
</Kontext>  

Vorteile: Einfach

Nachteile: schlechte Wiederverwendbarkeit

Die zweite Methode besteht darin, eine globale JNDI-Datenquelle zu konfigurieren und sie auf eine einzelne Anwendung anzuwenden.

Zwei Schritte

Der erste Schritt besteht darin, den Knoten GlobalNamingResources in Tomcats server.xml zu finden und unter dem Knoten eine globale Datenquelle hinzuzufügen

<Ressource  
    Name="jdbc/mysql"   
    Umfang="Teilbar"   
    Typ="javax.sql.DataSource"  
    Fabrik="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"  
    url="jdbc:mysql://localhost:3306/test"  
    TreiberKlassenname = "com.mysql.jdbc.Driver"  
    Benutzername="root"  
    Passwort="root"  
/>  
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

Der zweite Schritt besteht darin, den Projektkontextknoten zu finden, auf den diese JNDI-Datenquelle angewendet werden soll, und einen Referenz-ResourceLink zur globalen Datenquelle hinzuzufügen.

<Kontext docBase="WebApp" Pfad="/WebApp" reloadable="true">  
    <ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource" />  
</Kontext>

Vorteile: Wiederverwendbarkeit, Kontrollierbarkeit

Nachteile: Die Konfiguration ist komplizierter als bei der dritten Methode und jedes Projekt muss konfiguriert werden

Die dritte Methode besteht darin, eine globale JNDI-Datenquelle zu konfigurieren und sie auf alle unter Tomcat bereitgestellten Anwendungen anzuwenden.

Auch in zwei Schritte unterteilt

erster Schritt

Siehe den ersten Schritt der zweiten Methode

Der zweite Schritt besteht darin, die context.xml von Tomcat zu finden und einen ResourceLink-Knoten unter dem Context-Knoten hinzuzufügen, um auf die im ersten Schritt konfigurierte Datenquelle zu verweisen. Der Stammknoten dieser XML-Konfigurationsdatei ist <Context>

<Kontext>  
    <ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource" />  
   <WatchedResource>WEB-INF/web.xml</WatchedResource>  
<Kontext>  

Vorteile: Wiederverwendbarkeit, einmalige Implementierung Nachteile: keine Steuerbarkeit

Spring-Referenz zur JNDI-Datenquelle

Fügen Sie in applicationContext.xml eine Bean hinzu, um die ursprüngliche Datenquelle zu ersetzen

<jee:jndi-lookup id="Datenquelle" jndi-name="jdbc/mysql" />  

Konfiguration der C3P0-Datenquelle

Die Werte von Typ und Fabrik haben sich geändert

Benutzername=>Benutzer

url=>jdbcUrl

TreiberKlassenname=>Treiberklasse

<Ressourcenname="jdbc/mysql_c3p0" Umfang="Gemeinsam nutzbar"  
    Typ="com.mchange.v2.c3p0.ComboPooledDataSource"   
    Fabrik="org.apache.naming.factory.BeanFactory"  
    jdbcUrl="jdbc:mysql://localhost:3306/test" Treiberklasse="com.mysql.jdbc.Driver"  
    Benutzer="root" Passwort="root" />  

Damit ist dieser Artikel über die drei Möglichkeiten zum Konfigurieren einer JNDI-Datenquelle für Tomcat abgeschlossen. Weitere Informationen zum Konfigurieren einer JNDI-Datenquelle für Tomcat finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • So konfigurieren Sie den maxPostSize-Wert des integrierten Tomcat in Spring Boot
  • Detaillierte Schritte zum Konfigurieren von Springboot mit externem Tomcat in Idea
  • Lösung für Tomcat zum externen Speichern von Konfigurationsdateien
  • Eine kurze Diskussion über die richtige Haltung der Tomcat-Speicherkonfiguration
  • Detaillierte Erläuterung der optimierten Konfiguration der Tomcat-Benutzerverwaltung

<<:  Zusammenfassung der Verwendung von clipboard.js

>>:  Web-Theorie: Bringen Sie mich nicht zum Nachdenken über Lesehinweise

Artikel empfehlen

Zusammenfassung gängiger MySQL-Befehle

Festlegen des MySQL-Root-Passworts Melden Sie sic...

Zusammenfassung der HTML-Wissenspunkte für das Frontend (empfohlen)

1. HTML-Übersicht htyper Textauszeichnungssprache...

Javascript um den Drag-Effekt der Login-Box zu erreichen

In diesem Artikel wird der spezifische Code von J...

So vergleichen Sie zwei Datenbanktabellenstrukturen in MySQL

Während des Entwicklungs- und Debugging-Prozesses...

Einige Frontend-Grundlagen (HTML, CSS) aus der Praxis

1. Die Div-CSS-Maushandform ist Cursor:Zeiger; 2. ...

Der Unterschied zwischen KEY, PRIMARY KEY, UNIQUE KEY und INDEX in MySQL

Das im Titel angesprochene Problem lässt sich sch...

HTML-Tutorial: Sammlung häufig verwendeter HTML-Tags (6)

Diese eingeführten HTML-Tags entsprechen nicht un...

Vue3 verwendet Axios Interceptor zum Drucken von Front-End-Protokollen

Inhaltsverzeichnis 1. Einleitung 2. Verwenden Sie...

Detaillierte Hinweise zu React für Einsteiger

Inhaltsverzeichnis 1. Grundlegendes Verständnis v...

Webinterview: Benutzerdefinierte Vue-Komponenten und Aufrufmethoden

Import: Aufgrund der Projektanforderungen werden ...

So fügen Sie bedingte Ausdrücke zu Aggregatfunktionen in MySql hinzu

MySQL-Filterungs-Timing von Where-Bedingungen und...

Beispiel für die Ausführung eines MySQL-Befehlszeilenskripts

Dieser Artikel veranschaulicht anhand eines Beisp...

Details zum JavaScript-Timer

Inhaltsverzeichnis 1. Kurze Einführung 2. Interva...