en este momento estoy desarrollando una aplicación web basada en OSGi con Jetty y Equinox (consulte: http://wiki.eclipse.org/Jetty/Tutorial/EclipseRT-Jetty-Starter-Kit). Todo está bien hasta el momento, pero i no puedo obtener acceso a algunos archivos/recursos de mi propio paquete. La ubicación/ruta es "configuration/data/config.csv" y "configuration/data/data.zip". He probado todo:Sin acceso al archivo/recurso de paquete (OSGi)
context.getBundleContext().getBundle().getEntry("config.csv");
context.getBundleContext().getBundle().getResource("config.csv");
this.getClass().getClassLoader().getResource("config.csv");
context.getBundleContext().getDataFile("config.csv");
Y por supuesto, todos los caminos posibles variantes como: "Configuración/datos/config.csv", "/configuration/data/config.csv", "\ Configuración/datos/config .csv "," /config.csv ". Además he añadido las carpetas a la ruta de clase OSGi (en MANIFEST.MF):
Bundle-ClassPath: .,
configuration/data/
La URL resultante es siempre algo como este (o nulo): "Configuración/CBR-Data/config.csv" y cuando lo transfiero a un objeto de archivo "D: \ configuration \ CBR-Data \ config.csv".
pero lo que realmente no entiendo es que el archivo de propiedades para uno de mis DS se carga a la perfección:
<properties entry="configuration/dsconfig.properties"/>
tiene a alguien una idea/consejo o alguna otra cosa? Me estoy volviendo loco ...
Puede publicar el código, que obtiene la URL del recurso y cómo lo está utilizando después. Cuando use getEntry() debe pasar "configuration/data/config.csv" como parámetro a getEntry(). La URL resultante tendrá el formato: bundleentry: //20.fwk1235/resource.txt. Parece imposible que tenga el formato que ha publicado. Entonces, hay algo que va uno, lo cual no está claro en tu pregunta. –
Tienes razón, lo siento. La salida de 'URL configURL = context.getBundleContext(). GetBundle(). GetEntry (" configuration/data/confid.csv ");' es "bundleentry: //6.fwk33311724/configuration/data/config.csv". Intento transformar la URL a un archivo a través de: 'File configFile = new File (configURL.getPath());'. La ruta de salida 'configFile.getAbsolutePath();' es de: "D: \ configuration \ data \ config.csv" – Zitzit