Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试运行客户端时出现EJB异常_Java_Ejb 3.0_Ejb - Fatal编程技术网

Java 尝试运行客户端时出现EJB异常

Java 尝试运行客户端时出现EJB异常,java,ejb-3.0,ejb,Java,Ejb 3.0,Ejb,我创建了一个bean对象,在运行时遇到了这个错误 java.lang.ClassCastException at com.sun.corba.se.impl.javax.rmi.PortableRemoteObject.narrow(Unknown Source) at javax.rmi.PortableRemoteObject.narrow(Unknown Source) at Client_TestPortal.main Client_TestPortal.java:71) Cause

我创建了一个bean对象,在运行时遇到了这个错误

java.lang.ClassCastException at 
com.sun.corba.se.impl.javax.rmi.PortableRemoteObject.narrow(Unknown Source) at 
javax.rmi.PortableRemoteObject.narrow(Unknown Source) at Client_TestPortal.main Client_TestPortal.java:71) Caused by: 
java.lang.ClassCastException: javax.naming.Reference ... 3 more 
如何在我的客户机中创建bean对象?我有一个bean接口,
TestPortal
,一个bean类,
TestPortalBean
,在ear中,
portaljb

这是我用来在客户端创建EJB实例的代码

String sEjbRemote = "PortalEJB/TestPortalBean/remote";

Properties pProp = new Properties();
pProp.put("java.naming.factory.initial",sInitCtxtCls);
pProp.put("java.naming.provider.url", sUrl);

javax.naming.InitialContext initialContext = new InitialContext(pProp);
Object ref = initialContext.lookup(sEjbRemote);
System.out.println("\n\n \t Source :::"+ref.toString());

test.ejb.TestPortal testportal = (test.ejb.TestPortal)PortableRemoteObject.narrow(ref,test.ejb.TestPortal.class);
Object ref=initialContext.lookup(sEjbRemote)

当我在SOP ref.toString()中打印对象时

我获得了以下信息,但无法为TestPortal创建对象,该对象位于部署在JBOSS-AS版本中的PoratlEJB.ear中:JBOSS-5.0.1.GA

     Source :::Reference Class Name: Proxy for: test.ejb.TestPortal
类型:ProxyFactoryKey 内容:ProxyFactory/TestPortalBean/PortalEJB/TestPortalBean/remote 类型:EJB容器名称 内容:jboss.j2ee:ear=portaljb.ear,jar=portaljb.jar,name=TestPortalBean,serv ice=EJB3 类型:代理工厂是本地的 内容:假 类型:远程业务接口 内容:test.ejb.TestPortal 类型:远程处理主机URL
内容:socket://s9458:3973/

通常,我们会这样做

Properties props = getConfigurationProps();
InitialContext ctx = new InitialContext(props);
tp = (TestPortal) ctx.lookup(TEST_PORTAL_JNDI_NAME);
[编辑]

从您的代码中,我可以看到您正试图
缩小()对象。让我们看看文件中是怎么说的



我不知道你在干什么。但是你总是可以做到这一点,首先,正如我在第一次尝试中已经展示的那样

TestPortal ref = (TestPortal) initialContext.lookup(sEjbRemote);
而不是

Object ref = initialContext.lookup(sEjbRemote); 

通常,我们会这样做

Properties props = getConfigurationProps();
InitialContext ctx = new InitialContext(props);
tp = (TestPortal) ctx.lookup(TEST_PORTAL_JNDI_NAME);
[编辑]

从您的代码中,我可以看到您正试图
缩小()对象。让我们看看文件中是怎么说的



我不知道你在干什么。但是你总是可以做到这一点,首先,正如我在第一次尝试中已经展示的那样

TestPortal ref = (TestPortal) initialContext.lookup(sEjbRemote);
而不是

Object ref = initialContext.lookup(sEjbRemote); 

如何在客户端中创建对象?在这里显示一些代码。你在使用什么?J2EE1.4?JavaEE5/6?网络界面?远程富客户端?如何在客户端中创建对象?在这里显示一些代码。你在使用什么?J2EE1.4?JavaEE5/6?网络界面?远程富客户端?@saran:将您的代码添加到原始问题中。您以后也可以这样做,只需单击问题左下角给定的编辑链接。@Saran:现在您可以从这里删除您的评论,因为它们不再相关。我也会这么做,包括这个。@Saran:我已经相应地更新了我的答案,在看了你的代码之后。Adeel,当我尝试下面的代码TestPortal ref=(TestPortal)initialContext.lookup(sEjbRemote);我收到以下错误:Client_TestPortal.java:61:无法访问TestPortal错误的类文件:。\TestPortal.java文件不包含类TestPortal请删除或确保它出现在类文件的正确子目录中。TestPortal ref=(TestPortal)initialContext.loo kup(sEjbRemote);^1.error@Saran:您的接口和类都是公共的吗?@saran:将您的代码添加到原始问题中。您以后也可以这样做,只需单击问题左下角给定的编辑链接。@Saran:现在您可以从这里删除您的评论,因为它们不再相关。我也会这么做,包括这个。@Saran:我已经相应地更新了我的答案,在看了你的代码之后。Adeel,当我尝试下面的代码TestPortal ref=(TestPortal)initialContext.lookup(sEjbRemote);我收到以下错误:Client_TestPortal.java:61:无法访问TestPortal错误的类文件:。\TestPortal.java文件不包含类TestPortal请删除或确保它出现在类文件的正确子目录中。TestPortal ref=(TestPortal)initialContext.loo kup(sEjbRemote);^1.error@Saran:您的接口和类都是公共的吗?