на данный момент я разрабатываю веб-приложение на основе OSGi с Jetty и Equinox (см.: http://wiki.eclipse.org/Jetty/Tutorial/EclipseRT-Jetty-Starter-Kit). Пока все в порядке, но я не могу получить доступ к некоторым файлам/ресурсам моего собственного пакета. Расположение/путь: «configuration/data/config.csv» и «configuration/data/data.zip». Я протестировал все:
context.getBundleContext().getBundle().getEntry("config.csv");
context.getBundleContext().getBundle().getResource("config.csv");
this.getClass().getClassLoader().getResource("config.csv");
context.getBundleContext().getDataFile("config.csv");
И, конечно, все возможные варианты пути, такие как: "configuration/data/config.csv", "/configuration/data/config.csv", "\configuration/data/config.csv", "/config.csv". Кроме того, я добавил папки в путь к классам OSGi (в MANIFEST.MF):
Bundle-ClassPath: .,
configuration/data/
Результирующий URL-адрес всегда выглядит примерно так (или нулевой): «configuration/CBR-Data/config.csv», а когда я передаю его в объект «Файл», «D:\configuration\CBR-Data\config.csv».
Но чего я действительно не понимаю, так это того, что файл свойств для одного из моих DS загружается идеально:<properties entry="configuration/dsconfig.properties"/>
У кого-то есть идея/совет или что-то еще? Я схожу с ума...
URL configURL = context.getBundleContext().getBundle().getEntry("configuration/data/confid.csv");
— это bundleentry://6.fwk33311724/configuration/data/config.csv. Я пытаюсь преобразовать URL-адрес в файл через:File configFile = new File(configURL.getPath());
. Выходной путьconfigFile.getAbsolutePath();
чем: D:\configuration\data\config.csv - person Zitzit   schedule 06.06.2011