konteksti.xml-Metawerx Java Wiki
context.xml
the context.xml-tiedosto on valinnainen tiedosto, joka sisältää <Context> tagin (Context Fragment) yhdelle Tomcat-verkkosovellukselle. Tätä voidaan käyttää määrittelemään tiettyjä käyttäytymismalleja sovelluksellesi, JNDI-resursseillesi ja muille asetuksille.
konteksti.XML-tiedosto otettiin käyttöön Tomcat 5: ssä Kontekstiasetusten poistamiseksi palvelimelta.xml-tiedosto.
Kontekstipala voidaan upottaa palvelimeen.xml, joka on sijoitettu <CATALINA>/conf-kansioon tai sijoitettu jokaisen sovelluksen sisään META-INF-kansioon kontekstiksi kutsuttuun tiedostoon.xml. META-INF-menetelmää pidetään parempana, koska tällöin kontekstin muutokset eivät vaadi Tomcatin uudelleenkäynnistämistä. Voit käynnistää sovelluksen muokkaamalla web.xml, kun automaattinen uudelleenlataus on aktiivinen tai kun se ladataan manuaalisesti Tomcat Managerin avulla.
konteksti.xml-tiedosto tulee asentaa sovelluksen META-INF-kansioon META-INF/context-muodossa.xml. META-INF-kansio on samalla tasolla kuin WEB-inf (ei sisällä sitä).
index.jsp/WEB-INF web.xml /lib myjar.jar /classes myclass.class/META-INF context.xml
yllättävää kyllä, monet kehittäjät eivät vielä käytä tätä tiedostoa sovelluksissaan, vaikka se onkin erittäin hyödyllinen. Siirrytään kontekstin käyttöön.xml-tiedosto poistaa kaikki riippuvuudet palvelimelta.xml, jolloin sovellus on paljon kannettavampi ja helpompi ottaa käyttöön.
esimerkki konteksti.xml-tiedosto
tämä tiedosto tarjoaa JNDI-resurssin, joka edustaa MySQL-tietolähdettä ja tietoturva-aluetta.
<?xml version="1.0" encoding="UTF-8"?><Context> <!-- Specify a JDBC datasource --> <Resource name="jdbc/mydatabase" auth="Container" type="javax.sql.DataSource" username="YOUR_USERNAME" password="YOUR_PASSWORD" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://mysql.metawerx.net:3306/YOUR_DATABASE_NAME?autoReconnect=true" validationQuery="select 1" maxActive="10" maxIdle="4"/> <!-- Specify the security realm and location of the users file <Realm className="org.apache.catalina.realm.MemoryRealm" pathname="/tomcat/webapps/ROOT/WEB-INF/users.xml" /> --></Context>
pääsy yllä olevan esimerkin tietolähteeseen
yllä olevan esimerkin tietolähdettä voi käyttää java-koodissa seuraavalla rivillä:
// Get DataSourceContext ctx = new InitialContext();DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mydatabase");// Get Connection and StatementConnection c = ds.getConnection();Statement s = c.createStatement();
tietokantoja voidaan lisätä lisäämällä kontekstiin ylimääräinen < resurssi> Elementti.xml-tiedosto, jolla on eri nimi (esim. JDBC / customerDatabase).
pääsy tietoturva-alueeseen yllä olevassa esimerkissä
yllä olevassa esimerkissä oleva tietoturva-alue vaatii lisäasetuksia Webissä.xml. Lisätietoja, katso artikkeli turvaaminen sivuston Container Managed Security.
huomautukset
- joissakin esimerkeissä path-ja docBase-attribuutit näkyvät <kontekstissa> tag. Nämä ovat tarpeen, jos kontekstitunnus on palvelimessa.xml, mutta kontekstissa.xml ne ovat valinnaisia, ja usein vain aiheuttaa käyttöönoton ongelmia (esim: Jos sovellus on otettu käyttöön eri nimellä). On helpompaa (ja parempaa) jättää ne pois, jolloin asiayhteyden nimi on automaattinen. Tällöin käytetään vain < Kontekstia> ilman attribuutteja, kuten yllä olevassa esimerkissä.
- oletusasetukset kaikille Asiayhteyksille on määritelty asiayhteydessä.xml.oletustiedosto <CATALINA> / conf-kansiossa
Gotchas / vianmääritys / Vianetsintä JNDI-Tietolähdeongelmat
- JNDI-ongelmat ovat vaikeasti debugoitavia, koska vianetsintätulostetta ei ole, joten jos sinulla on ongelmia, tarkista tämä luettelo
- JNDI-tietolähteellä, varmista, että JDBC-ajuri on <CATALINA/common/lib tai se ei lataudu
- , jos JNDI datalähde ei toimi, varmista yhteyden tiedot ovat oikein liittämällä eri tavalla (esim.: telnet tai MySQL-komentoasiakas, joka käyttää samoja yksityiskohtia)
- deployXML on asetettava vääräksi (oletusarvo) <isäntä> – merkinnässä palvelimessa.xml eli konteksti.xml-tiedosto ohitetaan
- Tomcat 5.5 ja Tomcat 6 kopioi konteksti.xml-tiedosto <CATALINA> / conf/Standalone ensimmäisen onnistuneen käyttöönoton jälkeen, ja älä poista tai päivitä tiedostoa, ellei sovellusta ole asennettu. Jos muutat asiayhteyttäsi.XML-tiedosto ja löytää se ei vieläkään toimi, tai muutokset ohitetaan, poista tiedostoja <CATALINA> / conf / Standalone kansio varmistaa ne uudelleensijoitetaan oikein. Tomcat 7: llä ei ole tätä ongelmaa, ellei copyXML ole asetettu false (oletus on true. Metawerxissä isännöidyillä sivustoilla ei ole tätä ongelmaa minkään version kanssa mukautettujen asetusten vuoksi.
Katso myös
- web.xml Reference Guide
- Tomcat 6 context.xml-dokumentaatio
- <env-merkintä> tagi Webissä.xml, jota voidaan käyttää, jos määritellään vain yksinkertaiset tekstiarvot
- JNDI DBCP esimerkki MySQL 4: lle.x
- JNDI DBCP esimerkki MySQL: lle 5.x
- JNDI DBCP Example for SQL Server 7 and 2000
- JNDI DBCP Example for SQL Server 2005
- JNDI DBCP Example for PostGreSQL
- JNDI DBCP Example for FireBird
- JNDI DBCP Example for Oracle
- pääsy JNDI-datalähteeseen JSTL: n kanssa JSP: ltä
- Javan JNDI-DATALÄHTEESEEN
- sivustosi turvaaminen container Managed Security-järjestelmällä
Leave a Reply