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