С этого поста: http://codelevain.wordpress.com/2010/12/18/url-as-jndi-resource/
Определите ваш FTP URL в вашем context.xml, как это:
<Resource name="url/SomeService" auth="Container"
type="java.net.URL"
factory="com.mycompany.common.URLFactory"
url="ftp://ftpserver/folder" />
Предоставлять в com.mycompany.common.URLFactory реализации и убедитесь, что полученный класс доступны для Tomcat:
import java.net.URL;
import java.util.Hashtable;
import javax.naming.*;
import javax.naming.spi.ObjectFactory;
public class URLFactory implements ObjectFactory {
public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable environment) throws Exception {
Reference ref = (Reference) obj;
String urlString = (String) ref.get("url").getContent();
return new URL(urlString);
}
}
Создайте вашу ссылку в web.xml
<resource-ref>
<res-ref-name>
url/SomeService
</res-ref-name>
<res-type>
java.net.URL
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>
Затем в коде получить URL FTP, выполнив JNDI поиск:
InitialContext context = new InitialContext();
URL url = (URL) context.lookup("java:comp/env/url/SomeService");
один вопрос. Зачем? – EJP
Мне нужно где-то сохранить URL-адрес на FTP-сервере. Контекст веб-приложения кажется логичным местом. Это также место, где настроен URL-адрес базы данных. – Bob