У меня есть несколько файлов ресурсов, которые находятся в classpath моего веб-приложения (внутри JAR, если это имеет значение). Я знаю, что могу получить доступ к содержимому этих ресурсов, позвонив, например, по адресу SomeClassLoader.getResourceAsStream( "/samples/myscript.txt" )
. В прошлом я проверял это в файлах в разобранном виде и в нераскрытом виде WAR.
Однако, чтобы интегрироваться с некоторыми другими существующими классами в моем приложении, мне необходимо предоставить объект URLConnection для этого файла. Я проверил и подтвердил, что вызов getResource("/samples/myscript.txt").openConnection()
работает в разнесенных WAR (кроме того, отладка показала, что в результате получается file:///
URL-адрес взорванного файла).
Вопрос: будет ли этот метод работать на неразорвавшихся («упакованных?») WARs?
(В настоящее время у меня нет легкого доступа к серверу, который разворачивает войны, не разбирая их, поэтому я и спрашиваю, а не просто пробую его. Кроме того, некоторые серверы (например, Jetty, Tomcat - даже с unpackWARs="false"
) разрешает неразорвавшиеся развертывания, но за кулисами они распаковывают войну, фактически ведут себя как взорванное развертывание - и, очевидно, работают правильно. Я думаю, что серверами, которые доставляли мне проблемы в прошлом, были Websphere и Weblogic).