Tomcat: use FTP connection via JNDI [closed]

匿名 (未验证) 提交于 2019-12-03 10:24:21

问题:

I need to access an FTP server from my Web Application which runs on Tomcat 6. I want to use JNDI to do this.

How can I configure this FTP connection in Tomcat using JNDI? What do I have to write into web.xml and context.xml to configure the resource? And how can I then access this connection from the Java source code?

回答1:

From this post : http://codelevain.wordpress.com/2010/12/18/url-as-jndi-resource/

Define your FTP URL in your context.xml like this :

 <Resource name="url/SomeService" auth="Container"  type="java.net.URL"  factory="com.mycompany.common.URLFactory"  url="ftp://ftpserver/folder" /> 

Provide the com.mycompany.common.URLFactory implementation and make sure the resulting class is available to 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);  } } 

Create your reference in 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> 

Then in your code obtain the FTP URL by doing a JNDI lookup:

InitialContext context = new InitialContext(); URL url = (URL) context.lookup("java:comp/env/url/SomeService"); 


回答2:

You do not need JNDI for that. Just use an URLConnection Java class with an URL starting with "ftp:", see e. g. URL Connection (FTP) in Java - Simple Question



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!