关于ejb中异常javax.naming.NoInitialContextException的处理办法

原创 2007年09月25日 09:16:00

有时候EJB程序在运行时会出现如下异常信息:
--------------------------------------------------------------------------------------------
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 examples.HelloClient.main(HelloClient.java:31)
Exception in thread "main"
---------------------------------------------------------------------------------------------
这样的异常经常发生在java.naming.Context.lookup()方法上,原因是在于异常信息中的java.naming.factory.initial在不同的EJB容器中有不同的含义(初始化上下文工厂),

在weblogic81中它代表的是weblogic.jar中weblogic.jndi.WLInitialContextFactory类
处理办法有两个:
1.在运行程序时使用命令:java -Djava.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
2.需要在程序中补充这样的语句:
    Properties props = System.getPropjerties();
    props.put(InitialContext.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    Context ctx = new InitialContext(props);

有时EJB程序可能还需要另一个参数java.naming.provider.url,处理办法如上面类似:
1.在运行程序时使用命令:java -Djava.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
2.在程序中指定prop.setProperty("Context.PROVIDER_URL", "t3://127.0.0.1:7001");

 

Hibernate出现javax.naming.NoInitialContextException 错误的解决办法

异常信息: 08:02:56,329 WARN SessionFactoryObjectFactory:123 - Could not unbind factory from JNDI jav...

菜鸟调错(二)——EJB3.0部署消息驱动Bean抛javax.naming.NameNotFoundException异常

在部署EJB的消息驱动Bean时遇到了如下的错误: [plain] view plaincopy ERROR [org.jboss.resource...

javax.naming.NoInitialContextException解决

复习Hibernate时,遇到异常 javax.naming.NoInitialContextException: Need to specify class name in environment...

javax.naming.NoInitialContextException: Need to specify class name in XXX解决

环境 MyEclipse 8.6 + JBoss 6.0 + JDK 1.6.13 + EJB 3.0   问题 运行EJB程序,出现如下异常:   javax.naming.NoInitialCon...
  • Wentasy
  • Wentasy
  • 2012年12月12日 16:43
  • 2908

javax.naming.NoInitialContextException

javax.naming.NoInitialContextException: Need to specify class name in environment or system property...

javax.xml.bind.UnmarshalException异常解决办法

1:重现错误       学习SOA:服务端使用SCA+SDO发布web服务,服务返回一个DataObject对象。客户端使用CXF+Spring访问服务。但是访问的时候发生了以下错误: java...

javax.naming.NameNotFoundException: Name jdbc is not bound in this Context

[2011-11-23 00:41:28] runqianReportLogger : [ERROR]  - Name jdbc is not bound in this Context javax...

javax.naming.NamingException: Cannot create resource instance at

java javax.naming.NamingException: Cannot create resource instance at org.apache.naming.factor...

Weblogic报错:javax.naming.NameNotFoundException: While trying to look up jdbc in /app.;

先把问题踢出来:
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于ejb中异常javax.naming.NoInitialContextException的处理办法
举报原因:
原因补充:

(最多只允许输入30个字)