Загрузка файла свойств в GWT на Tomcat - PullRequest
1 голос
/ 23 февраля 2012

Я знаю, что есть много подобных вопросов, но ни один из них не помог.На сервере tomcat запущено приложение GWT, которое загружает файл свойств для соединений с базой данных.

Код для загрузки файла свойств выглядит следующим образом:

private static final String DB_CONF = "com/x/monitorui/server/configuration.properties";
Properties properties = new Properties();
properties.load(DatabaseConnection.class.getClass().getResourceAsStream(DB_CONF));

Это прекрасно работаетпока разрабатывается локально на Jetty, но не при развертывании на Tomcat.Кажется, он не может найти ресурс.Сам файл находится в war/WEB-INF/classes/com/x/monitorui/server, класс, пытающийся загрузить его, находится в том же пакете.

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

Если ваш файл свойств находится в том же каталоге, что и класс, который вы используете для вызова «getResourceAsStream (..)», то вам просто нужно имя файла без абсолютного пути к нему.Например, предположим, что у вас есть:

// notice that your build should copy this from the source directory to your /WEB-INF/classes/.... directory automatically so you can do a clean build
com/x/monitorui/server/configuration.properties

и класс, расположенный в том же каталоге, т.е.в упаковке:

com.x.monitorui.server.DatabaseConnection

тогда вы можете просто позвонить

Properties properties = new Properties();
properties.load(DatabaseConnection.class.getResourceAsStream("configuration.properties"));
0 голосов
/ 23 февраля 2012

Здесь почти то же самое происходит с "Packager.class", как с классом в том же каталоге; Идея здесь в том, чтобы найти путь через classpath, который работает на tomcat:

final ClassPool pool = ClassPool.getDefault( );
final Class<?> baseClass = Packager.class;
pool.insertClassPath( new ClassClassPath( baseClass ) );

final URL url = pool.find( baseClass.getName( ) );

String pathToBaseClass = url.toURI( ).getPath( );
String baseDir = pathToBaseClass.substring( 0, pathToBaseClass.indexOf( "com" ) - 1 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...