2014-01-25 4 views
0

У меня есть веб-сервер, который я разработал в Eclipse с локальным сервером TomCat. При разработке мне часто приходилось запускать скрипты из командной строки из кода Java. Я просто посмотрел на рабочий каталог, в котором работает Java внутри eclipse (был где-то в подкаталоге Eclipse) и помещал здесь массу файлов и скриптов.Изменение путей Java при развертывании WAR

Теперь, создавая ВОЙН, эти пути неправильны. Я просто не уверен, как правильно интегрировать все это в свой проект. Должен ли я скопировать все в каталог проекта Eclipse и сделать здесь путь «домой» Java - как я могу настроить это, чтобы WAR работала при развертывании на веб-сервере?

+0

Если я правильно понимаю, вы можете исправить это, получив путь к приложению во время выполнения, а затем добавив это к вашим сценариям и файлам. Вы также можете загрузить их как ресурсы класса. Можете ли вы привести пример того, как вы используете эти файлы и сценарии в своем приложении? – dwb

+0

Подкаталог со всеми скриптами и т. Д. Вызывается классами Webserver с помощью класса построителя процессов. Он используется для взаимодействия с другой java-флягой, которая провела статистический анализ (я не могу изменить эту программу), и я написал кучу других сценариев оболочки, чтобы прочитать вывод многих файлов и файлов журнала, которые были сгенерированы. Затем они возвращаются в классы веб-сервера, которые, например, табулируют эти данные. Вы также можете использовать внешний интерфейс веб-сервера для запуска нового статистического анализа, что на самом деле означает, что Java-код вызывает сценарий bash для запуска этой программы. – Awoken

ответ

0

Должен ли я копировать все в каталог проекта Eclipse и создавать здесь путь «домой» Java - как я могу настроить это, чтобы WAR работала при развертывании на веб-сервере?

Это плохая идея:

  • Поскольку вы не можете изменить «текущий каталог» в программе Java, единственный способ сделать это было бы «CD» в Затмении каталог проекта и запустить Tomcat оттуда. Тьфу !!

  • И это концептуально неправильно:

    • Предположим, у вас есть два WAR-файлы, созданные в двух различных проектов Eclipse. Приложение не может иметь двух разных «текущих» каталогов. Это не имеет никакого смысла.

    • Что делать, если вы хотите, чтобы развернуть на Tomcat на системе, которая не имеет проектор Eclipse, имеющуюся в его распоряжении ...


правильный способ решить эту проблему состоит в том, чтобы поместить все необходимые файлы в файл WAR, а затем получить к ним доступ из вашей базы данных webapp, используя либо относительные пути к файлу webapp ... или через путь к классам.

Да, это повлечет за собой изменение кода вашего webapp, но это правильный подход.

+0

Итак, как именно я помещаю все в webapp/war? Скопировать весь другой каталог в проект-застройщик затмения, а затем, экспортируя его в войну, он будет упакован внутри? Даже после этого файлы Java внутри моего webapp все еще «запускаются» из совершенно другого каталога, и я не уверен, как это назначается при связывании в качестве военного файла. – Awoken

Смежные вопросы