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