[jboss-user] [EJB3] - javax.naming.NoInitialContextException...
Joseph Hwang
do-not-reply at jboss.com
Sun Apr 22 23:45:03 EDT 2012
Joseph Hwang [https://community.jboss.org/people/aupres] created the discussion
"javax.naming.NoInitialContextException..."
To view the discussion, visit: https://community.jboss.org/message/731547#731547
--------------------------------------------------------------
I use ejb3.1 on JBoss 7.0.2. I develop bean with @Schedule annotation. The codes are :
==== IScheduleTestPort.java
package com.aaa.ejb3;
import javax.ejb.Remote;
@Remote
public interface IScheduleTestPort {
public String getSignal();
}
===== ScheduleBean.java
package com.aaa.ejb3;
import java.util.Date;
import javax.annotation.PostConstruct;
import javax.ejb.Schedules;
import javax.ejb.Schedule;
import javax.ejb.Stateless;
@Stateless
public class ScheduleBean implements IScheduleTestPort {
private String str;
@PostConstruct
public void doPostConstruct() {
str = "Time is : ";
}
@Schedules({
@Schedule(dayOfMonth = "5", hour = "09-18", minute = "*", second="10/5", timezone = "America/Los_Angeles"),
@Schedule(dayOfMonth = "Mon", hour = "10-17", minute = "*", second="*/5" , timezone = "Asia/Seoul") })
@Override
public String getSignal() {
// TODO Auto-generated method stub
return str + new Date();
}
}
===== ScheduleBeanClient.java
package com.aaa.ejb3;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.Context;
public class ScheduleBeanClient {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Properties props = new Properties();
props.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
props.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
props.put("java.naming.provider.url", "jnp://localhost:1099");
Context ctx = new InitialContext(props);
ScheduleBean schedule = (ScheduleBean)ctx.lookup("java:module/ScheduleBean");
while (true) {
System.out.println(schedule.getSignal());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
But client throws exception like below :
javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at com.aaa.ejb3.ScheduleBeanClient.main(ScheduleBeanClient.java:47)
Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:46)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
So i remove the parameter of InitialContext,
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Context ctx = new InitialContext(props);
ScheduleBean schedule = (ScheduleBean)ctx.lookup("java:module/ScheduleBean");
while (true) {
System.out.println(schedule.getSignal());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
...
This the codes throws the following exception ,
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:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.aaa.ejb3.ScheduleBeanClient.main(ScheduleBeanClient.java:49)
I have no idea of what is wrong with my codes. I need your help!
Thanks in advanced.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/731547#731547]
Start a new discussion in EJB3 at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2029]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20120422/39600546/attachment.html
More information about the jboss-user
mailing list