kontekst.XML-Metawerx Java Wiki
kontekst.XML
kontekst.plik xml jest opcjonalnym plikiem zawierającym znacznik< Context > (fragment kontekstu) dla pojedynczej aplikacji internetowej Tomcat. Można tego użyć do zdefiniowania pewnych zachowań dla aplikacji, zasobów JNDI i innych ustawień.
kontekst.plik xml został wprowadzony w Tomcat 5, aby usunąć ustawienia kontekstowe z serwera.plik xml.
Fragment kontekstu może być osadzony na serwerze.xml, umieszczony w folderze<CATALINA> / conf lub umieszczony wewnątrz każdej aplikacji w folderze META-INF w pliku o nazwie context.xml. Preferowana jest metoda META-INF, ponieważ oznacza to, że zmiany w kontekście nie wymagają ponownego uruchomienia Tomcata. Możesz ponownie uruchomić aplikację, modyfikując sieć.xml, gdy aktywne jest automatyczne przeładowanie lub przeładowanie ręcznie za pomocą Menedżera Tomcat.
Twój kontekst.plik xml powinien być zainstalowany w folderze META – INF Twojej aplikacji, jako META-INF/context.xml. Folder META-INF należy na tym samym poziomie co WEB-INF (Nie wewnątrz niego).
index.jsp/WEB-INF web.xml /lib myjar.jar /classes myclass.class/META-INF context.xml
co zaskakujące, niewielu programistów używa tego pliku w swoich aplikacjach, chociaż jest on bardzo przydatny. Przejście na użycie kontekstu.plik xml usuwa wszystkie zależności z serwera.xml, dzięki czemu aplikacja jest znacznie bardziej przenośna i łatwiejsza do wdrożenia.
przykładowy kontekst.plik xml
ten plik zawiera zasób JNDI reprezentujący źródło danych MySQL i obszar bezpieczeństwa.
<?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>
dostęp do źródła danych w powyższym przykładzie
dostęp do źródła danych w powyższym przykładzie można uzyskać w kodzie java za pomocą następującej linii:
// 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();
dodatkowe bazy danych można dodać, dodając do kontekstu dodatkowy element <zasobu>.plik xml o innej nazwie (np.: JDBC/customerDatabase).
dostęp do sfery bezpieczeństwa w powyższym przykładzie
sfera bezpieczeństwa w powyższym przykładzie wymaga dalszej konfiguracji w sieci.xml. Aby uzyskać więcej informacji, zobacz artykuł zabezpieczanie witryny za pomocą zabezpieczeń zarządzanych kontenerami.
notatki
- niektóre przykłady pokazują atrybuty ścieżki i docBase w tagu <Context>. Są one wymagane, jeśli znacznik context znajduje się w serwerze.xml, ale w kontekście.xml są one opcjonalne i często powodują problemy z wdrożeniem (np. jeśli aplikacja jest wdrażana pod inną nazwą). Łatwiej (i lepiej) je pominąć, dzięki czemu nazwa kontekstu jest automatyczna. W tym przypadku wystarczy użyć< kontekstu > bez atrybutów, jak w powyższym przykładzie.
- domyślne ustawienia dla wszystkich kontekstów są zdefiniowane w kontekście.xml.domyślny plik w folderze < CATALINA> / conf
problemy z Gotchas / Rozwiązywanie problemów / debugowanie JNDI DataSource
- problemy z JNDI są trudne do debugowania, ponieważ nie ma wyjścia debugowania, więc jeśli masz problemy, sprawdź tę listę
- z JNDI datasource, upewnij się, że dołączono sterownik JDBC w <CATALINA/common/lib lub nie załaduje się
- jeśli źródło danych JNDI nie działa, upewnij się, że szczegóły połączenia są poprawne, łącząc się w inny sposób (np.:
- deployXML musi być ustawiony na false (domyślnie) we wpisie< Host >w serwerze.xml, czyli kontekst.plik xml zostanie zignorowany
- Tomcat 5.5 i Tomcat 6 kopiują kontekst.plik xml do <CATALINA> /conf / Standalone po pierwszym udanym wdrożeniu i nie usuwaj ani nie Aktualizuj pliku, chyba że aplikacja jest niezabezpieczona. Jeśli zmienisz kontekst.plik xml i znaleźć to nadal nie działa, lub zmiany są ignorowane, usuń wszystkie pliki w folderze<CATALINA > /Conf/Standalone, aby upewnić się, że są one ponownie rozmieszczone poprawnie. Tomcat 7 nie ma tego problemu, chyba że copyXML jest ustawiony na false (domyślnie jest to true. Witryny hostowane w Metawerx nie mają tego problemu z żadną wersją Ze względu na naszą niestandardową konfigurację.
Zobacz też:
- www.XML Reference Guide
- Tomcat 6 context.dokumentacja xml
- <env-wpis > tag w sieci.xml, który może być użyty, jeśli tylko określasz proste wartości tekstowe
- JNDI DBCP przykład dla MySQL 4.X
- przykład JNDI DBCP dla MySQL 5.x
- JNDI DBCP przykład dla SQL Server 7 i 2000
- JNDI DBCP przykład dla SQL Server 2005
- JNDI DBCP przykład dla PostGreSQL
- JNDI DBCP przykład dla FireBird
- JNDI DBCP przykład dla Oracle
- uzyskiwanie dostępu do źródła danych JNDI z JSTL z JSP
- uzyskiwanie dostępu do źródła danych JNDI z Java
- zabezpieczanie witryny za pomocą zabezpieczeń zarządzanych kontenerami
Leave a Reply