Я обнаружил, что метод getContent () даст мне VirtualFile, который, возможно, я смогу использовать. Все еще не объясняет, почему я не могу просто сделать openStream () для URL vfs: /.

новляем наше приложение с JBoss 4 до JBoss 6.

Несколько частей нашего приложения доставляются клиенту необычным способом: файлы jar ищутся внутри нашего приложения и отправляются клиенту из сервлета, где клиент извлекает их для запуска определенных функций поддержки.

В JBoss 4 мы просматривали эти jar-файлы с помощью загрузчика классов и находили URL-адрес jar: //, который использовался бы для чтения jar-файла и отправки его содержимого клиенту.

В JBoss 6, когда мы выполняем поиск, мы получаем vfs: / URL. Я понимаю, что это из пакета org.jboss.vfs. К сожалению, когда я вызываю openStream () для этого URL и читаю из потока, я сразу получаю EOF (read () возвращает -1).

Что дает? Почему я не могу прочитать ресурс, на который ссылается этот URL?

Я пытался получить доступ к базовым пакетам VFS, чтобы открыть файл через API-интерфейс JBoss VFS, но большая часть API-интерфейса оказалась закрытой, и я не смог найти подпрограмму для преобразования из URL-адреса vfs: / в VFS Объект VirtualFile, поэтому я никуда не мог добраться.

Я могу попытаться найти файл на диске в JBoss, но такой подход при обновлении звучит очень неудачно.

Наш старый подход состоял в том, чтобы использовать Java Web Start для раздачи jar-файлов клиенту, а затем искать их в кэше Java Web Start для их извлечения. Но это ломалось при каждом незначительном обновлении Java, потому что расположение кеша менялось.

Ответы на вопрос(3)

Ваш ответ на вопрос