Как я могу предоставить контекст для URLStreamHandler? - PullRequest
0 голосов
/ 04 ноября 2008

Наше приложение определяет схему URL, разрешение которой зависит от контекста: содержание URL зависит от состояния выполняемой транзакции базы данных. Таким образом, для получения контента я не могу, например, открыть новое соединение с базой данных. Тем не менее, я не вижу способа получить внешний контекст из экземпляра URLStreamHandler.

Документация также немного вводит в заблуждение: я проверил на сайте обработчика протокола java и указал (в разделе Реализация URLStreamHandlerFactory ), что класс URL будет принимать URLStreamHandlerFactory экземпляр, но 1.5 JDK указывает, что URL принимает только URLStreamHandler при создании URL.

Итак, мой вопрос: каков наилучший способ разрешения контекстно-зависимых URL? Есть ли лучший способ, чем иметь переменную класса ThreadLocal в моей реализации URLStreamHandler, которая устанавливается перед вызовами?

Ответы [ 2 ]

2 голосов
/ 04 ноября 2008

См. URL.setURLStreamHandlerFactory

Это статический метод и:

Устанавливает приложение URLStreamHandlerFactory. Этот метод может быть вызван не более одного раза в данном Виртуальная машина Java.

0 голосов
/ 10 сентября 2009

Оказывается, что для наших целей, по крайней мере, локальный объект контекста потока работает лучше всего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...