我需要从运行在Tomcat 6上的Web应用程序访问FTP服务器。我想使用JNDI来执行此操作。Tomcat:通过JNDI使用FTP连接
如何使用JNDI在Tomcat中配置此FTP连接? 我必须写入web.xml
和context.xml
才能配置资源?然后,我如何才能从Java源代码访问此连接?
我需要从运行在Tomcat 6上的Web应用程序访问FTP服务器。我想使用JNDI来执行此操作。Tomcat:通过JNDI使用FTP连接
如何使用JNDI在Tomcat中配置此FTP连接? 我必须写入web.xml
和context.xml
才能配置资源?然后,我如何才能从Java源代码访问此连接?
从这个帖子: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>
然后在你的代码做一个JNDI查找获取FTP网址:
InitialContext context = new InitialContext();
URL url = (URL) context.lookup("java:comp/env/url/SomeService");
谢谢,那正是我所期待的。 – Bob
你不需要JNDI。只需使用一个URLConnection
Java类,其URL从"ftp:"
开始,请参见e。 G。 URL Connection (FTP) in Java - Simple Question
一个问题。为什么? – EJP
我需要将URL存储到某个地方的FTP服务器。 Web应用程序的上下文似乎是合乎逻辑的地方。这也是配置数据库URL的地方。 – Bob