kontext.xml-Metawerx Java Wiki
kontext.xml
kontext.xml soubor je volitelný soubor, který obsahuje <kontext> tag (fragment kontextu) pro jednu webovou aplikaci Tomcat. To lze použít k definování určitých chování pro vaši aplikaci, zdroje JNDI a další nastavení.
kontext.xml soubor byl zaveden v Tomcat 5, odstranit kontextové nastavení ze serveru.xml soubor.
kontextový Fragment lze vložit do serveru.xml, umístěné ve složce <CATALINA> / conf nebo umístěné uvnitř každé aplikace ve složce META-INF v souboru s názvem kontext.datum. Metoda META-INF je upřednostňována, protože to znamená, že změny kontextu nevyžadují restartování Tomcatu. Aplikaci můžete restartovat úpravou webu.xml, když je aktivní automatické překládání, nebo překládání ručně pomocí Správce Tomcat.
váš kontext.soubor xml by měl být nainstalován ve složce META-INF vaší aplikace jako META-INF / context.datum. META-INF složka patří na stejné úrovni jako WEB-INF (ne uvnitř).
index.jsp/WEB-INF web.xml /lib myjar.jar /classes myclass.class/META-INF context.xml
překvapivě mnoho vývojářů tento soubor v rámci svých aplikací ještě nepoužívá, i když je to velmi užitečné. Přechod na použití kontextu.xml soubor odstraní všechny závislosti ze serveru.xml, což činí aplikaci mnohem přenosnější a snadnější nasazení.
příklad kontextu.xml soubor
tento soubor poskytuje zdroj JNDI představující zdroj dat MySQL a oblast zabezpečení.
<?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řístup ke zdroji dat ve výše uvedeném příkladu
zdroj dat ve výše uvedeném příkladu lze přistupovat v kódu java pomocí následujícího řádku:
// 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();
další databáze lze přidat přidáním dalšího prvku <Resource> do kontextu.soubor xml s jiným názvem (např.: jdbc / customerDatabase).
přístup do oblasti zabezpečení ve výše uvedeném příkladu
oblast zabezpečení ve výše uvedeném příkladu vyžaduje další nastavení na webu.datum. Další podrobnosti naleznete v článku zabezpečení vašeho webu pomocí zabezpečení správy kontejnerů.
poznámky
- některé příklady ukazují atributy path a docBase v<kontextu > značky. Ty jsou vyžadovány, pokud je kontextová značka v serveru.xml, ale v kontextu.xml jsou volitelné a často způsobují problémy s nasazením (např. Je snazší (a lepší) je vynechat, čímž je název kontextu automatický. V tomto případě stačí použít <kontext> bez atributů, jako ve výše uvedeném příkladu.
- výchozí nastavení pro všechny kontexty jsou definovány v kontextu.datum.výchozí soubor ve složce <CATALINA>/conf
Gotchas / Troubleshooting / Debugging JNDI DataSource issues
- JNDI issues are difficult to debug, as there is no debug output, so if you have problems, check this list
- With a JNDI datasource, ujistěte se, že zahrnout ovladač JDBC do < CATALINA / common / lib or it will not load
- If a JNDI datasource not work, ujistěte se, že podrobnosti o připojení jsou správné připojením jiným způsobem (např:
- deployXML musí být nastavena na hodnotu false(výchozí) v položce <Host> v serveru.xml nebo kontext.soubor xml bude ignorován
- Tomcat 5.5 a Tomcat 6 zkopírujte kontext.soubor xml do < CATALINA>/conf / Standalone po prvním úspěšném nasazení a neodstraňujte ani neaktualizujte soubor, pokud aplikace není nasazena. Pokud změníte kontext.soubor xml a zjistíte, že stále nefunguje, nebo jsou vaše změny ignorovány, odstraňte všechny soubory ve složce <CATALINA> / conf / Standalone, abyste se ujistili, že jsou správně přesunuty. Tomcat 7 tento problém nemá, pokud není copyXML nastaven jako false (výchozí je true. Weby hostované na Metawerx nemají tento problém s žádnou verzí kvůli našemu vlastnímu nastavení.
Viz také
- web.xml referenční příručka
- Tomcat 6 kontext.xml dokumentace
- <env-entry> štítek na webu.xml, který lze použít, pokud zadáváte pouze jednoduché textové hodnoty
- příklad JNDI DBCP pro MySQL 4.x
- JNDI DBCP příklad pro MySQL 5.x
- JNDI DBCP příklad pro SQL Server 7 a 2000
- JNDI DBCP příklad pro SQL Server 2005
- JNDI DBCP příklad pro PostGreSQL
- JNDI DBCP příklad pro FireBird
- JNDI DBCP příklad pro Oracle
- přístup k datovému zdroji JNDI pomocí JSTL z JSP
- přístup k datovému zdroji JNDI z Javy
- zabezpečení vašeho webu pomocí zabezpečení spravovaného kontejnerem
Leave a Reply