Как развернуть в jboss файловую папку в jar? - PullRequest
0 голосов
/ 22 октября 2009

Я разрабатываю веб-сервис Jboss, который требует доступа к файлам, которые находятся в папке проекта. Когда я развертываю веб-сервис, он создает .jar, но папка внутри него не помещается, даже если я добавил его в путь сборки.

Как мне сказать jboss разместить папку внутри .jar?

Заранее спасибо.

1 Ответ

1 голос
/ 22 октября 2009

Я предполагаю, потому что вы явно говорите "jar", что ваши веб-сервисы являются конечными точками ejb, а не веб-сервисами на основе сервлетов JAX-RPC (потому что они будут упакованы в .war).

В отличие от сервлетов, которые в некоторой степени способны находить файлы внутри проекта (при условии, что вы можете указать их местоположение как смещение к веб-папке, вы можете определить их реальное местоположение с помощью getRealPath () объекта ServletContext, которого у EJB нет " автоматическое «представление о каталогах».

Так что даже если бы вы смогли убедить Eclipse развернуть файлы для вас, я сомневаюсь, что это вам очень поможет.

EDIT: в веб-архиве (.war) все внутри веб-папки будет доступно сервлетам во время выполнения по механизму, описанному ранее. Однако обратите внимание, что файлы внутри сети доступны через веб-интерфейс, за исключением тех, которые находятся в папке WEB-INF, поэтому я бы посоветовал хотя бы хранить ваши файлы где-нибудь в подкаталоге WEB-INF.

В более глобальном масштабе вы также должны задать себе вопрос, действительно ли вы должны развертывать эти файлы вместе с приложением - и повторно развертывать их при каждом повторном развертывании. Одним из решений в этом случае является создание некоторого каталога на сервере (скажем, c: / applicationfiles), создание опции JVM, например, -Dserverfilestore = c: / applicationfiles и ваше приложение определит этот каталог с помощью

String storebase=System.getProperty("serverfilestore");

Остальное должно быть совершенно очевидно. Это решение также будет работать с вашими EJB сервисами.

...