一个main中的exception,请问如何解决 谢谢了

wszfq0303 2006-04-28 12:00:50
我运行java程序抛出了这个错误该如何解决啊 ?谢谢了
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:640)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:280)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at com.liuyang.bmp.programmer.client.ProgrammerClient.main(ProgrammerClient.java:21)
Exception in thread "main"
下面是我的程序:
/*
* Created on 2006-4-27
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.liuyang.bmp.programmer.client;

import java.util.Collection;
import java.util.Iterator;

import javax.naming.InitialContext;

import com.liuyang.bmp.interfaces.ProgrammerBMP;
import com.liuyang.bmp.interfaces.ProgrammerBMPHome;

public class ProgrammerClient {

public static void main(String[] args) throws Exception {
//System.out.println("fasdf");
Object ref = new InitialContext().lookup("ejb/ProgrammerBMP");
ProgrammerBMPHome home = (ProgrammerBMPHome)ref;
ProgrammerBMP liuyang = home.create("liuyang",25,"java","jboss");
ProgrammerBMP weifei = home.create("weifei",25,"java","eclipse");
Collection all = home.findByLanguage("java");
if((all!=null)&&(!all.isEmpty())){
Iterator it = all.iterator();
while(it.hasNext()){
ProgrammerBMP bmp = (ProgrammerBMP) it.next();
System.out.println(bmp.getName()+":"+bmp.getTool());
}
}
}
}

...全文
145 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gong43 2006-04-28
  • 打赏
  • 举报
回复
把jndi naming factory的名字和jndi url写到一个叫jndi.properties的文件里,放到classpath。或者运行程序的时候把他们加到环境变量里。还有一个办法,把他们放到perperties里面,加到initialcontext里。
fireflyqt 2006-04-28
  • 打赏
  • 举报
回复
是否忘记对"ejb/ProgrammerBMP"进行配置
wszfq0303 2006-04-28
  • 打赏
  • 举报
回复
我把程序改过后:
/*
* Created on 2006-4-27
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.liuyang.bmp.programmer.client;

import java.util.Collection;
import java.util.Iterator;
import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;

import com.liuyang.bmp.interfaces.ProgrammerBMP;
import com.liuyang.bmp.interfaces.ProgrammerBMPHome;

public class ProgrammerClient {

public static void main(String[] args) throws Exception {

Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
p.put(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces");
p.put(Context.PROVIDER_URL, "127.0.0.1:1009");
InitialContext ctx = new InitialContext(p);
Object ref = ctx.lookup("ejb/ProgrammerBMP");
ProgrammerBMPHome home = (ProgrammerBMPHome)ref;
ProgrammerBMP liuyang = home.create("liuyang",25,"java","jboss");
ProgrammerBMP weifei = home.create("weifei",25,"java","eclipse");
Collection all = home.findByLanguage("java");
if((all!=null)&&(!all.isEmpty())){
Iterator it = all.iterator();
while(it.hasNext()){
ProgrammerBMP bmp = (ProgrammerBMP) it.next();
System.out.println(bmp.getName()+":"+bmp.getTool());
}
}
}
}
但运行后也出现了错误:
log4j:WARN No appenders could be found for logger (org.jnp.interfaces.NamingContext).
log4j:WARN Please initialize the log4j system properly.
javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out]
at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1302)
at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1382)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:579)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at com.liuyang.bmp.programmer.client.ProgrammerClient.main(ProgrammerClient.java:28)
Caused by: java.net.SocketTimeoutException: Receive timed out
at java.net.PlainDatagramSocketImpl.receive(Native Method)
at java.net.DatagramSocket.receive(DatagramSocket.java:711)
at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1272)
... 5 more
Exception in thread "main"
这是什么原因啊??

67,549

社区成员

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

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