sammenheng.xml-Metawerx Java Wiki

kontekst.xml

konteksten.xml-fil er en valgfri fil som inneholder en <Kontekst > tag (Kontekst Fragment) for en Enkelt Tomcat web-applikasjon. Dette kan brukes til å definere visse atferd for applikasjonen din, JNDI-ressurser og andre innstillinger.

konteksten.xml-filen ble introdusert I Tomcat 5, for å fjerne Kontekstinnstillinger fra serveren.xml-fil.

Kontekstfragmentet kan bygges inn i serveren.xml, plassert i MAPPEN <CATALINA > / conf, eller plassert i hvert program I META – inf-mappen i en fil som heter context.xml. META-INF-metoden er foretrukket da dette betyr at endringer i konteksten ikke krever At Tomcat startes på nytt. Du kan starte programmet på nytt ved å endre web.xml når automatisk omlasting er aktiv, eller omlasting manuelt med Tomcat Manager.

din kontekst.xml-filen skal installeres I META – inf-mappen i søknaden din, SOM META-INF / kontekst.xml. META – inf-mappen tilhører PÅ samme nivå SOM WEB-INF (ikke inne i den).

index.jsp/WEB-INF web.xml /lib myjar.jar /classes myclass.class/META-INF context.xml

Overraskende, ikke mange utviklere bruker denne filen i sine applikasjoner ennå, selv om det er veldig nyttig. Bytte til bruk av en kontekst.xml-fil fjerner alle avhengigheter fra serveren.xml, noe som gjør programmet mye mer bærbar og enklere å distribuere.

Eksempel kontekst.xml-fil

denne filen inneholder en jndi-ressurs som representerer En MySQL-datakilde og et sikkerhetsområde.

<?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>

Tilgang Til Datakilden i eksemplet ovenfor

datakilden i eksemplet ovenfor kan nås i java-koden din med følgende linje:

// 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();

Ytterligere databaser kan legges til ved å legge til et ekstra <Ressurs > element i konteksten.xml-fil, med et annet navn(f. eks: jdbc / customerDatabase).

Tilgang Til Sikkerhetsområdet i eksemplet ovenfor

sikkerhetsområdet i eksemplet ovenfor krever ytterligere oppsett i web.xml. Hvis du vil ha mer informasjon, kan du se artikkelen Sikre nettstedet ditt med Container Managed Security.

Merknader

  • noen eksempler viser sti-og docBase-attributter i < – Konteksten > – taggen. Disse kreves hvis kontekstkoden er i server.xml, men i sammenheng.xml de er valgfrie,og forårsaker ofte distribusjonsproblemer (f. eks. Det er lettere (og bedre) å forlate dem, noe som gjør kontekstnavnet automatisk. I dette tilfellet bruker du Bare <Kontekst> uten attributter,som i eksemplet ovenfor.
  • Standardinnstillinger for Alle Sammenhenger er definert i konteksten.xml.standardfil i MAPPEN < CATALINA >/conf

Gotchas / Feilsøking / Debugging jndi DataSource issues

  • JNDI-problemer er vanskelige å feilsøke, da DET ikke er noen feilsøkingsutgang, så hvis du har problemer, sjekk denne listen
  • med EN jndi datasource, sørg for å inkludere jdbc-driveren i <CATALINA/common/lib, eller det vil ikke laste
  • Hvis en Jndi Datasource VIRKER IKKE, Sørg For At Tilkoblingsdetaljene er riktige ved å koble til en annen måte (f. eks: samme detaljer)
  • deployXML må settes til false (standard) i < Vert > – oppføringen i server.xml eller kontekst.xml-filen vil bli ignorert
  • Tomcat 5.5 Og Tomcat 6 kopiere konteksten.xml-filen til <CATALINA> /conf / Standalone etter den forste vellykkede distribusjonen, og ikke fjern eller oppdater filen med mindre programmet er undeployed. Hvis du endrer konteksten.xml-fil og finne det fortsatt ikke fungerer, eller endringene blir ignorert, slette filer i < CATALINA > /conf / Frittstående mappe for å sikre at de er omplassert riktig. Tomcat 7 har ikke dette problemet, med mindre copyXML er satt false (standard er sant. Nettsteder vert På Metawerx har ikke dette problemet med noen versjon på grunn av vår tilpassede oppsett.

Se også

  • web.xml Referanse Guide
  • Tomcat 6 kontekst.xml dokumentasjon
  • <env-oppføring> tag i web.xml, som kan brukes hvis du bare angir enkle tekstverdier
  • Jndi DBCP Eksempel For MySQL 4.x
  • Jndi Dbcp Eksempel For MySQL 5.x
  • Jndi Dbcp Eksempel FOR SQL Server 7 og 2000
  • Jndi Dbcp Eksempel FOR SQL Server 2005
  • Jndi Dbcp Eksempel For PostGreSQL
  • Jndi Dbcp Eksempel For FireBird
  • Jndi Dbcp Eksempel For Oracle
  • få tilgang til en jndi-datakilde Med JSTL Fra jsp
  • få tilgang til en jndi-DATAKILDE FRA JAVA
  • sikre nettstedet ditt med container managed security

Leave a Reply