У нас есть проект GWT, написанный в java. У нас есть URL выхода, специфичный для среды (https://example-dev.net/logoff.htm, https://example-sit.net/logoff.htm, ...). Это прекрасно работает, когда мы добавляем этот объект из файла свойств, которые упаковывают в нашей папке проекта/Src, как в следующем:Использование файла свойств с сервера IBM WAS в проекте GWT
com.example.shared.constants/LogoutUrl.java
import com.google.gwt.i18n.client.Constants;
public interface LogoutUrl extends Constants {
String LOGOUT_URL();
}
com.example .shared.constants/LogoutUrl.properties
LOGOUT_URL = https://example-env.net/logoff.htm
Это не выглядит как хорошая практика, так как это требует изменения URL и новое создание войны в каждом сервере. Я попытался добавить этот файл свойств на сервер (IBM WAS) и извлечь его из кода с помощью java.util.Properties. Но в этом случае сборка GWT не работает. Мы используем ant build. Пожалуйста, предложите способ отделить этот файл свойств от нашего проекта и получить с сервера.
Update: Добавление части, как я пытался настроить с помощью внешнего файла свойств, которые мы добавили в приложение сервера:
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("logouturl.properties");
Properties prop = new Properties();
try {
prop.load(inputStream);
} catch (Exception e) {
//LOGGER.error("Exception occurred while loading logouturl.properties file.", e);
}
String logoutUrl = prop.get("LOGOUT_URL").toString();
Window.Location.replace(logoutUrl);
Но gwtc сборки неисправного в этом случае.
Я настроил с помощью внешнего файла свойств, который мы добавили на сервер приложений. Я обновил свой вопрос, как я добавил этот файл свойств в свой код. Но gwtc build не работает. – devlperMoose
Если код Java, который вы вставили, является частью вашего модуля GWT, он должен потерпеть неудачу. Обратите внимание, что Java-код GWT - это просто java-код, который компилируется в javascript. Не весь код Java может быть скомпилирован в javascript, и GWT объясняет в документации, что есть только подмножество библиотек Java Oracle, которые могут использоваться в GWT, так что он компилируется в Javascript (пакеты, такие как java.util. *, Java.lang .*, и т.д). Я не думаю, что InputStream является частью этого подмножества - [Совместимость с языком Java и библиотеками] (http://www.gwtproject.org/doc/latest/DevGuideCodingBasics.html) – Lev
Вы отправляете какие-либо данные с сервера на ваш клиентский код GWT уже? Используете ли вы механизм RPC GWT для этого? Если да, можете ли вы использовать этот механизм для отправки настроенного значения URL выхода при необходимости? Мы делаем что-то подобное в проекте, над которым я работаю. У нас есть конфигурация на сервере, которая зависит от среды. Часть этой конфигурации отправляется в модуль GWT на стороне клиента, когда пользователь входит в наше приложение. – Lev