Мы обновляем наше приложение с JBoss 4 до JBoss 6.
Несколько частей нашего приложения доставляются клиенту необычным способом: файлы jar ищутся внутри нашего приложения и отправляются вклиент из сервлета, где клиент извлекает их для запуска определенных функций поддержки.
В JBoss 4 мы будем искать эти jar-файлы с помощью загрузчика классов и находить URL-адрес 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, потому что структура кэша менялась.