Chciałbym przeczytać MANIFEST.MF
z mojej aplikacji WAR
. Jak mogę znaleźć jego nazwę pliku?Jak odczytać MANIFEST.MF w aplikacji WAR?
Odpowiedz
Jak mogę znaleźć jego nazwę?
Już ją masz. Może chciałeś znaleźć absolutną lokalizację pliku? Możesz użyć do tego celu ServletContext#getRealPath()
.
String relativeWARPath = "/META-INF/MANIFEST.MF";
String absoluteDiskPath = getServletContext().getRealPath(relativeWARPath);
File file = new File(absoluteDiskPath);
// ...
Lub jeśli chcesz dostać go jako InputStream
bezpośrednio użyć ServletContext#getResourceAsStream()
.
InputStream input = getServletContext().getResourceAsStream("/META-INF/MANIFEST.MF");
// ...
Dzięki, tego właśnie szukam. Teraz muszę dowiedzieć się jak uzyskać 'ServletContext' w klasie, która nie jest serwletem .. Wygląda na to, że muszę zarejestrować mój niestandardowy' ServletContextListener' w 'sieci .xml' .. prawda? – yegor256
Po prostu przekaż go jako argument konstruktora lub metody. – BalusC
Co powiesz na 'ServletContextListener'? Czy idę właściwą drogą? – yegor256
Miałem ten sam problem w każdej aplikacji i postanowił utworzyć komponent z klasy użytkowej w nim: jcabi-manifests. Teraz łatwo załadować dowolny atrybut z jednego z dostępnych MANIFEST.MF
w ścieżce klas:
import com.jcabi.manifests.Manifests;
String value = Manifests.read("My-Version");
Również to sprawdzić: http://www.yegor256.com/2014/07/03/how-to-read-manifest-mf.html
Istnieje kilka sposobów, aby to zrobić, a wybrana odpowiedź to działa tylko wtedy, gdy chcesz przeczytać Manifiest plików na warstwie Servlet/SpringMVC lub jakiejkolwiek innej warstwie, do której możesz uzyskać dostęp do ServletContext.
Jednakże, jeśli chcesz odczytać wartość, taką jak "wersja", nawet przed uruchomieniem Servletu, jak podczas konfiguracji logback lub czegoś innego, może być konieczne wykonanie klasycznej operacji ładowania klas lub Manifest.
Znalazłem to repozytorium github (nie moje) i zawiera ono 4 różne sposoby odczytu informacji z pliku Manifest. Jeśli twoja sytuacja nie jest dostępna dla ServletContext, sprawdź te.
- 1. Jak mogę odczytać plik z katalogu klas w mojej WAR?
- 2. Jak odczytać plik JAR MANIFEST.MF z użyciem Bash
- 3. Przeglądarka plików Manifest.mf?
- 4. Jak wdrożyć plik WAR w Apache 2.2
- 5. Jak wygenerować plik MANIFEST.MF podczas fazy kompilacji
- 6. Program Clojure czytający własny MANIFEST.MF
- 7. Jak obsługiwać pliki ze spacjami w ścieżce klas w MANIFEST.MF?
- 8. Gdzie dodać .rozszerzenia w WAR?
- 9. Dlaczego wtyczka maven-war wygeneruje JAR zamiast WAR?
- 10. jak odczytać zmienną środowiskową systemu w aplikacji SpringContext
- 11. Jak mogę programowo odczytać wersję aplikacji zdefiniowaną w pliku manifestu?
- 12. Jak odczytać plik w czasie rzeczywistym dla aplikacji czatu?
- 13. Jak wygenerować WAR z kodem źródłowym w Maven?
- 14. EAR vs oddzielne EJB + WAR
- 15. Tomcat braku wdrożyć .war
- 16. Definiowanie kontekstu serwletu w pliku WAR
- 17. JBoss 7: jak zmienić kontekstowy root WAR
- 18. Wdrażanie pliku WAR do Glassfish
- 19. Jak wdrożyć WAR z Maven na Tomcat?
- 20. Jak utworzyć MANIFEST.MF, który jest dostępny podczas testowania i uruchamiania ze słoika w produkcji?
- 21. Gdzie umieścić plik konfiguracji zabezpieczeń w WAR?
- 22. Maven - Generowanie Jar i War
- 23. Rozmieść WAR w osadzonym Tomcat 7
- 24. Definiuj kontekstroot wewnątrz pliku WAR
- 25. odwoływania się configuration.properties spoza .war
- 26. apache-tomcat 7.0 nie rozpakowuje się .war?
- 27. Ucho Gradle wstawia JAR zamiast WAR
- 28. Jak odczytać bitmapę w OCAML?
- 29. Jak mogę wdrożyć WAR w osadzonym Jetty 8?
- 30. Jak obsługiwać nakładki Maven WAR w środowisku Eclipse?
samo jak [W jaki sposób odczytać pliku manifestu dla webapp?] (Http://stackoverflow.com/questions/615493). –