У меня есть приложение Java Spring (maven) с классом TranslationService, которое возвращает переведенную строку из файла JSON (backend.json). Когда я создаю свой проект (mvn clean package
), я получаю свой файл {project} - {version} .jar. Если я исполню этот файл (java -jar target/*.jar
), все работает отлично, Я могу видеть свою страницу, и все работает.Java не может найти мой файл перевода, если я использую Apache2 (вместо Tomcat)
Но у меня есть одна проблема сейчас. В производственной версии моего проекта я использую Apache2 с VirtualHost. Мой тест конфигурация выглядит следующим образом:
<VirtualHost *:80>
ServerName myloc
ProxyPass/http://localhost:8080/
</VirtualHost>
Я все еще могу видеть мою страницу и заполнить свои формы и т.д .. Но если я после того, как мои окончательные представить, мое приложение посылает мне по электронной почте и создает PDF для меня. Но мое приложение сбой, потому что оно не может перевести мои вещи, потому что он говорит, что он не может найти мой файл. Но в моей версии по умолчанию (tomcat) она работала нормально.
static String getTranslation(String lang, String jsonKey) {
try {
File file = new File("./src/main/resources/static/i18n/"+lang+"/backend.json");
JsonReader reader = Json.createReader(FileUtils.openInputStream(file));
// ...
ошибка:
"message":"java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.io.FileNotFoundException: File './src/main/webapp/i18n/de/backend.json' does not exist"
Путь относится к рабочему каталогу, просто напечатайте абсолютный путь с помощью System.out.println (file.getCanonicalPath()), чтобы узнать, почему ваш результирующий путь неверен –