Uaktualniamy naszą aplikację z JBoss 4 na JBoss 6.Dlaczego nie mogę otworzyć pliku JBoss vfs:/URL?
Kilka elementów naszej aplikacji jest dostarczanych do klienta w nietypowy sposób: słoiki są wyszukiwane wewnątrz naszej aplikacji i wysyłane do klienta z serwlet, w którym klient wyodrębnia je w celu uruchomienia pewnych funkcji wsparcia.
W JBoss 4 szukaliśmy tych słoików za pomocą programu ładującego klasy i znaleźliśmy jar: // URL, który byłby używany do odczytu słoika i wysyłania jego zawartości do klienta.
W JBoss 6 podczas wykonywania wyszukiwania otrzymujemy vfs:/URL. Rozumiem, że jest to z pakietu org.jboss.vfs. Niestety, gdy wywołuję metodę openStream() na tym adresie URL i czytam ze strumienia, natychmiast otrzymuję EOF (read() zwraca -1).
Co daje? Dlaczego nie mogę przeczytać zasobu, do którego odnosi się ten adres URL?
Próbowałem próbować uzyskać dostęp do podstawowych pakietów VFS, aby otworzyć plik za pośrednictwem interfejsu JBoss VFS API, ale większość interfejsu API wydaje się być prywatna i nie mogłem znaleźć procedury do przetłumaczenia z pliku vfs:/Adres URL do obiektu VirtualFile VFS, więc nigdzie nie mogłem się dostać.
Mogę spróbować znaleźć plik na dysku w JBoss, ale to podejście brzmi bardzo podatne na awarię podczas aktualizacji.
Nasze stare podejście polegało na użyciu Java Web Start w celu dystrybucji słoików na kliencie, a następnie sprawdzenia ich w pamięci podręcznej Java Web Start, aby je rozpakować. Ale to zepsuło każdą drobną aktualizację Javy, ponieważ zmienił się układ pamięci podręcznej.
org.apache.commons.vfs. *; ten import również pomaga w tym zakresie. –
Przykro mi to mówić, że JBoss VFS i Apache VFS mają identyczne nazwy, ale są różnymi produktami. Korzystanie z klas Apache VFS prawdopodobnie nie pomoże w problemach z VB JBoss. Również korzystanie z dokumentacji Apache VFS raczej nie pomoże. A JBoss nie dokumentował ich VFS bardzo dobrze, więc większość dokumentacji, którą znajdziesz, dotyczy Apache. – skiphoppy