В примере 6.3 показан образец кода, использующий URL-провайдер и URL-ресурсы. Обратите внимание, что ссылка на ресурс в Web-модуле, myHttpUrl, связывается с JNDI-именем URL-ресурса, url/MotdUrl, в ходе сборки приложения или в ходе размещения.
Пример 6.3. Пример провайдера HTTP URL
javax.naming.InitialContext ctx = new javax.naming.InitialContext(); javax.naming.Context env = (javax.naming.Context) ctx.lookup(«java:comp/env»);
java.net.URL url = (java.net.URL) env.lookup(«myHttpUrl»); java.io.InputStream ins = url.openStream();
int c;
while ((c = ins.read()) != — 1) { out.write(c);
}
В данном случае мы вставили код примера 6.3 в JSP, добавили JSP в Web-модуль, добавили в Web-модуль ссылку на URL-ресурс, а затем разместили Web-модуль. Далее мы убедились, что содержимое файла, указанного в URL-ресурсе file:///d:/url/motd.txt, включено в выходные данные JSP.
Таким же образом можно обращаться к настраиваемому клиентскому URL-провайдеру, связанному с котировками акций, как показано в примере 6.4. Ссылка на ресурс в Web-модуле, myQuoteUrl, связывается с JNDI-именем ресурса, url/QuoteUrl, и с URL quote://IBM. Пользовательский URL-провайдер будет получать онлайновые котировки акций IBM.
Пример 6.4. Пример с URL-провайдером для котировок акций
javax.naming.InitialContext ctx = new javax.naming.InitialContext(); javax.naming.Context env =
(javax.naming.Context) ctx.lookup(«java:comp/env»);
java.net.URL url = (java.net.URL) env.lookup(«myQuoteUrl»); out.println(«The stock price is «+url.getContent());
Примечание. Пространство имен каждого сервера приложений инициализируется при загрузке. Это означает, что для того, чтобы измененные свойства ресурсов, такие как строка URL, загрузились, нужно перезапустить серверы.