当前位置: 技术问答>java相关
EJB的问题
来源: 互联网 发布时间:2015-09-06
本文导语: import javax.naming.Context; import javax.naming.InitialContext; import java.util.Properties; public class HelloClient { public static void main(String[] args) throws Exception { Properties props = System.getProperties(); Cont...
import javax.naming.Context;
import javax.naming.InitialContext;
import java.util.Properties;
public class HelloClient
{
public static void main(String[] args) throws Exception
{
Properties props = System.getProperties(); Context ctx = new InitialContext(props); Object obj = ctx.lookup("helloJNDI"); HelloHome home = (HelloHome)
javax.rmi.PortableRemoteObject.narrow(obj,
elloHome.class);
Hello hello = home.create();
System.out.println(hello.hello());
hello.remove();
}
}
(ejb的类设计、部署都没有错)
请问以上j2ee程序的客户端,运行时出现造型异常,出错信息如下:
Exception in thread "main" java.lang.ClassCastException
at com.sun.corba.se.internal.javax.rmi.PortableRemoteObject.narrow
(Unknown Source)
at javax.rmi.PortableRemoteObject.narrow(Unknown Source)
at HelloClient.main(HelloClient.java:25)
请问可能会是什么问题呢?谢谢指点!
import javax.naming.InitialContext;
import java.util.Properties;
public class HelloClient
{
public static void main(String[] args) throws Exception
{
Properties props = System.getProperties(); Context ctx = new InitialContext(props); Object obj = ctx.lookup("helloJNDI"); HelloHome home = (HelloHome)
javax.rmi.PortableRemoteObject.narrow(obj,
elloHome.class);
Hello hello = home.create();
System.out.println(hello.hello());
hello.remove();
}
}
(ejb的类设计、部署都没有错)
请问以上j2ee程序的客户端,运行时出现造型异常,出错信息如下:
Exception in thread "main" java.lang.ClassCastException
at com.sun.corba.se.internal.javax.rmi.PortableRemoteObject.narrow
(Unknown Source)
at javax.rmi.PortableRemoteObject.narrow(Unknown Source)
at HelloClient.main(HelloClient.java:25)
请问可能会是什么问题呢?谢谢指点!
|
有可能是你的配置问题。用的服务器不同,配置不同。例如在bas下还要包client.jar给加入服务器。而在bes下则不用。只需ear包即可
也有可能是程序问题。
你是否把你的client.jar加入包中;
再看看jndi是否和你lookup的相同(看你的程序应该是相同的,因为是在narrow出的错)。
我是刚开始学ejb。不过hello已通过
也有可能是程序问题。
你是否把你的client.jar加入包中;
再看看jndi是否和你lookup的相同(看你的程序应该是相同的,因为是在narrow出的错)。
我是刚开始学ejb。不过hello已通过
|
Object obj = ctx.lookup("java:comp/env/ejb/helloJNDI");
"ejb/helloJNDI"为 JNDI。
你要用deploytool在EJB Refs中设置
In the tree, select HelloClient.
Select the EJB Refs tab.
Click Add.
In the Coded Name column, enter ejb/helloJNDI.
In the Type column, select Session.
In the Interfaces column, select Remote.
In the Home Interface column, enter Hello.
In the Local/Remote Interface column, enter Hello
"ejb/helloJNDI"为 JNDI。
你要用deploytool在EJB Refs中设置
In the tree, select HelloClient.
Select the EJB Refs tab.
Click Add.
In the Coded Name column, enter ejb/helloJNDI.
In the Type column, select Session.
In the Interfaces column, select Remote.
In the Home Interface column, enter Hello.
In the Local/Remote Interface column, enter Hello
|
要import 你的ejb包