JDNI文件系统的问题?

古布 2004-10-12 12:13:30
/**
* AWT Sample application
*
* @author
* @version 1.00 04/10/12
*/

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingEnumeration;
import java.util.Hashtable;
import javax.naming.spi.ObjectFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class JNDI {

public static void main(String[] args) {
fscontext();
}

public static void fscontext(){
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.fscontext.RefFSContextFactory");
env.put(Context.PROVIDER_URL, "file:///E:/download/temp");

try{
Context initCtx = new InitialContext(env);
NamingEnumeration n1 = initCtx.list("temp1");
Object item = null;

while ( n1.hasMore()){
item = n1.next();
log.info(item.getClass());
log.info(item);

}
}catch( Exception e){
e.printStackTrace();
}
}
private static Log log = LogFactory.getLog(JNDI.class);
}


出错如下:
javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.jndi.f
scontext.RefFSContextFactory [Root exception is java.lang.ClassNotFoundException
: com.sun.jndi.fscontext.RefFSContextFactory]
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:6
52)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243
)
at javax.naming.InitialContext.init(InitialContext.java:219)
at javax.naming.InitialContext.<init>(InitialContext.java:195)
at JNDI.fscontext(JNDI.java:30)
at JNDI.main(JNDI.java:20)
Caused by: java.lang.ClassNotFoundException: com.sun.jndi.fscontext.RefFSContext
Factory
at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:219)
at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.jav
a:42)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:6

改如何解决??
...全文
75 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
皮鲁 2004-10-12
  • 打赏
  • 举报
回复
明显找不到类撒
文件系统服务提供者的工厂类需要从Sun公司单独下载,J2SE 1.4.x没有包含这些类。
到http://java.sun.com/products/jndi/downloads/index.html下载JNDI的相关包,然后把两个jar: fscontext.jar和providerutil.jar加入到你的CLASSPATH中.这样就可以运行了.

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧