当前页面: 开发资料首页 → J2EE 专题 → ejb的helloworld无法通过,请高手指点
ejb的helloworld无法通过,请高手指点
摘要: ejb的helloworld无法通过,请高手指点
我按照书上的将HelloWorld.jar部署到jboss成功了.(JBOSS版本为3.2)
但是我使用HelloClient.java调用的时候出现了问题,
HelloClient.java如下:
//*************************************************************
import javax.naming.Context;
import javax.naming.InitialContext;
import java.util.Properties;
import examples.*;
public class HelloClient
{
public static void main(String[] args) throws Exception
{
Properties props = System.getProperties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
props.put(Context.PROVIDER_URL, "jnp://localhost:1099");
InitialContext ctx = new InitialContext(props);
Object obj = ctx.lookup("HelloHome");
HelloHome home = (HelloHome)javax.rmi.PortableRemoteObject.narrow(obj,HelloHome.class);
Hello hello = home.create();
System.out.println("hello.hello()");
hello.remove();
}
}
//***********************************************************
异常如下:
Exception in thread "main" javax.naming.NoInitialContextException: Cannot instan
tiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lan
g.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
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.
(InitialContext.java:195)
at HelloClient.main(HelloClient.java:15)
Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFac
tory
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
49)
... 4 more
不知道是不是JNDI要配置,如果要配置请问怎么配置???
另外我尝试在InitialContext ctx = new InitialContext(props);后面打印点东西,可是并没有成功.
可见没有得到上下文. 请问该怎么解决??请高手指教.
帮帮忙啊。
用JBuilder 或者 Eclipse 这些帮你提供服务
Exception in thread "main" javax.naming.NoInitialContextException: Cannot instan
tiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lan
g.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory
------------------------------------------------------------------------------
NoInitialContextException没有初始化context,原因是没有找到org.jnp.interfaces.NamingContextFactory,应该是缺少JAR文件吧.
那配置JBOSS要配置多少jar文件啊?
好久没写过EJB了,不记的了。反正就那么几个包,查一下.
没搞定