WOJNA (format pliku)
Rozszerzenie nazwy pliku |
.wojna
|
---|---|
Rodzaj mediów internetowych | aplikacja/archiwum java |
magiczny numer |
PK\x03\x04 (standardowy plik ZIP) |
Opracowany przez | Mikrosystemy Słońca |
Pojemnik na | JSP , serwlet Java |
Przedłużony od | SŁOIK |
W inżynierii oprogramowania plik WAR ( Web Application Resource lub Web application AR chive) to plik używany do dystrybucji kolekcji plików JAR , stron JavaServer , serwletów Java , klas Java , plików XML , bibliotek znaczników, statycznych strony internetowe ( pliki HTML i powiązane) oraz inne zasoby, które razem tworzą aplikację internetową .
Treść i struktura
Plik WAR może być podpisany cyfrowo w taki sam sposób jak plik JAR , aby umożliwić innym ustalenie, skąd pochodzi kod źródłowy.
W pliku WAR znajdują się specjalne pliki i katalogi:
- Katalog /WEB-INF w pliku WAR zawiera plik o nazwie web.xml , który definiuje strukturę aplikacji internetowej. Jeśli aplikacja internetowa obsługuje tylko pliki JSP, plik web.xml nie jest bezwzględnie konieczny. Jeśli aplikacja internetowa korzysta z serwletów, kontener serwletów używa pliku web.xml w celu ustalenia, do którego serwletu adres URL żądanie zostanie przekierowane. Plik web.xml jest również używany do definiowania zmiennych kontekstowych, do których można się odwoływać w serwletach, oraz do definiowania zależności środowiskowych, które ma skonfigurować wdrażający. Przykładem tego jest zależność od sesji poczty używanej do wysyłania wiadomości e-mail. Za świadczenie tej usługi odpowiedzialny jest kontener serwletu.
Zalety plików WAR
- Łatwe testowanie i wdrażanie aplikacji internetowych
- Łatwa identyfikacja wersji wdrożonej aplikacji
- Wszystkie kontenery Java EE obsługują pliki WAR
- MVC obsługuje pliki WAR.
Zakładając, że środowiska produkcyjne nie promują poprawki bez wystarczających testów przed wdrożeniem, plik WAR ma wyraźną przewagę, gdy pliki właściwości są używane do identyfikowania zmiennych specyficznych dla środowiska. Na przykład serwer LDAP w środowisku testowym może mieć postać ldaps://testauth.example.com:636
. Serwer LDAP w środowisku produkcyjnym to ldaps://auth.example.com:636
. Zewnętrzny plik właściwości definiowałby łącze z czymś takim jak:
LINKED_PAGE=ldaps://testauth.example.com:636
Kod źródłowy odczytuje plik właściwości, aby określić docelowy serwer LDAP. W ten sposób programiści mogą mieć pewność, że przetestowany i zweryfikowany plik WAR jest dokładnie taki sam, jak ten, który jest promowany do produkcji.
Wady plików WAR
Niektórzy uważają, że wdrażanie sieciowe przy użyciu plików WAR jest niekorzystne, gdy w dynamicznych środowiskach wymagane są niewielkie zmiany w kodzie źródłowym. Każda zmiana w kodzie źródłowym musi zostać przepakowana i wdrożona w fazie programowania. Nie wymaga to zatrzymywania serwera WWW, jeśli jest skonfigurowany do wdrażania w czasie wykonywania.
Przykład
Poniższy przykładowy plik web.xml demonstruje deklarację i powiązanie serwletu :
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE aplikacja internetowa PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" " http://java. < _ _ _ _ _ _ _ _ _ /servlet> <mapowanie-servletu> <nazwa-servletu> HelloServlet </nazwa-servletu>
<url-pattern> /HelloServlet </url-pattern> </servlet-mapping> <resource-ref> <description> Odniesienie do zasobu fabryki instancji javax.mail.Session, które mogą być używane do wysyłania wiadomości poczty elektronicznej, wstępnie skonfigurowane aby połączyć się z odpowiednim serwerem SMTP. </description> <res-ref-name> mail/Session </res-ref-name> <res-type> javax.mail.Session </res-type> <res-auth> Kontener
</res-auth> </resource-ref> </aplikacja internetowa>
Katalog /WEB-INF/classes
znajduje się w ścieżce klasy programu ClassLoader . (Ścieżka klasy składa się z listy lokalizacji, z których JVM może ładować i wykonywać pliki .class .) Katalog
/WEB-INF/classes
zawiera klasy powiązane z samą aplikacją WWW.
Wszelkie pliki JAR umieszczone w katalogu /WEB-INF/lib
zostaną również umieszczone w ścieżce klasy programu ClassLoader.
Zobacz też
Linki zewnętrzne
- Archiwa sieciowe opakowań (samouczek Jakarta EE 8)
- JSR 154: Specyfikacja JavaTM Servlet 2.4