Me gustaría leer MANIFEST.MF
de mi solicitud WAR
. ¿Cómo puedo encontrar su nombre de archivo?Cómo leer MANIFEST.MF dentro de la aplicación WAR?
Respuesta
¿Cómo puedo encontrar el nombre del archivo?
Ya lo tienes. ¿Quizás quisiste encontrar la ubicación absoluta del archivo? Puedes usar ServletContext#getRealPath()
para esto.
String relativeWARPath = "/META-INF/MANIFEST.MF";
String absoluteDiskPath = getServletContext().getRealPath(relativeWARPath);
File file = new File(absoluteDiskPath);
// ...
O si desea obtener como InputStream
directamente, utilice ServletContext#getResourceAsStream()
.
InputStream input = getServletContext().getResourceAsStream("/META-INF/MANIFEST.MF");
// ...
Gracias, esto es lo que estoy buscando ... Ahora tengo que averiguar cómo obtener 'ServletContext' en una clase que no sea un servlet en sí. Parece que tengo que registrar mi' ServletContextListener' personalizado en 'web .xml' .. ¿Cierto? – yegor256
Simplemente pásalo como argumento de constructor o método. – BalusC
¿Qué tal 'ServletContextListener'? ¿Voy por el camino correcto? – yegor256
que tenían el mismo problema en todas las aplicaciones y decidieron crear un componente con una clase de utilidad en ella: jcabi-manifests. Ahora es fácil de cargar cualquier atributo de uno de los disponibles MANIFEST.MF
en la ruta de clase:
import com.jcabi.manifests.Manifests;
String value = Manifests.read("My-Version");
Además, mira esto: http://www.yegor256.com/2014/07/03/how-to-read-manifest-mf.html
Hay algunas maneras de hacerlo, y la respuesta elegida es sólo funciona cuando desea leer los archivos Manifiest en la capa Servlet/SpringMVC o cualquier capa a la que pueda acceder a ServletContext.
Sin embargo, si quiere leer un valor como "versión" incluso antes de que se inicie el Servlet, como durante la configuración de inicio de sesión u otra cosa, es posible que tenga que hacer una carga de clases antigua o una manipulación de archivo Manifest.
Encontré este repositorio github (no mío) e incluye 4 formas diferentes de leer información del archivo Manifest. Si su situación no es accesible para ServletContext, verifíquelos.
- 1. ¿Qué es el uso de MANIFEST.MF en WAR/JAR/EAR?
- 2. Cómo leer el archivo MANIFEST.MF del JAR usando Bash
- 3. ¿Cómo verifico el orden de MANIFEST.MF dentro de jar?
- 4. Cómo agregar WAR dentro de EAR con Maven
- 5. Leer un archivo de la aplicación web
- 6. Definir contexto dentro del archivo WAR
- 7. M2Eclipse, META-INF/MANIFEST.MF
- 8. Almacenar archivos xml en la carpeta de recursos (WAR), leer desde el código
- 9. Actualización de archivos dentro de un archivo WAR existente
- 10. ¿Cómo puedo leer un archivo de recursos en un archivo war sin detonar implementado en Tomcat?
- 11. ¿Cómo puedo leer el archivo del directorio de clases en mi WAR?
- 12. ¿Cómo evitar copiar 40M de java lib dentro de un WAR cuando el tamaño de WAR es 41M?
- 13. Cargue el archivo .war en el motor de la aplicación Google (GAE) usando la aplicación
- 14. ¿Puede reemplazar texto en archivos dentro de jar/ear/war?
- 15. Cómo ejecutar el archivo de la clase java dentro del archivo war
- 16. Cómo configurar class-path correctamente en maven-war-plugin
- 17. ¿Es posible implementar una nueva aplicación .war sin detener la aplicación?
- 18. Convenciones para contenido adicional del archivo manifest.mf?
- 19. leyendo el archivo MANIFEST.MF del archivo jar usando JAVA
- 20. Lectura del indicador de notificación en la aplicación "Configuración" dentro de la aplicación de mi iPhone
- 21. programa Clojure leyendo su propio MANIFEST.MF
- 22. rss leer la aplicación iphone/ipad
- 23. manifest.mf se sobreescribe por ecplise durante la exportación jar
- 24. ¿Deben repetirse los JAR comunes en WAR en un EAR?
- 25. Cómo leer un archivo dentro de un Jar con JRuby
- 26. ¿La mejor manera de depurar la aplicación web Java empaquetada como WAR utilizando Eclipse y Maven?
- 27. Aplicación web de Netbeans - excluyendo el JAR mientras construyes WAR
- 28. ¿Cómo leer un archivo .properties dentro de un archivo .xsl?
- 29. Leer la entrada en bash dentro de un bucle while
- 30. Usando ServerManager para crear una aplicación dentro de la aplicación
Igual que [¿Cómo se lee el archivo de manifiesto de una aplicación web?] (Http://stackoverflow.com/questions/615493). –