2

我需要从运行在 Tomcat 6 上的 Web 应用程序访问 FTP 服务器。我想使用 JNDI 来执行此操作。

如何使用 JNDI 在 Tomcat 中配置此 FTP 连接?我必须写入什么内容web.xmlcontext.xml配置资源?然后我怎样才能从 Java 源代码访问这个连接?

4

2 回答 2

5

从这篇文章:http ://codelevain.wordpress.com/2010/12/18/url-as-jndi-resource/

在您的 context.xml 中定义您的 FTP URL,如下所示:

 <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 URL:

InitialContext context = new InitialContext();
URL url = (URL) context.lookup("java:comp/env/url/SomeService");
于 2013-08-21T08:33:50.343 回答
0

为此,您不需要 JNDI。只需使用URLConnection带有以 开头的 URL 的 Java 类"ftp:",请参阅Java 中的 URL 连接 (FTP) - 简单问题

于 2013-08-21T08:00:57.460 回答