非常奇怪的关于EJB的环境配置问题.请教高手!!

零基础学编程by学哥 2001-06-13 11:26:00
我的同事按照我的EJB的配置环境的方法配置,运行一个jsp调用ejb出现下列错误,但是同样的文件放到我的机器上却能正常运行,因此可以断定为两台机器的环境配置不一致.但是重新配置后问题依然.系统为win2k+weblogic5.1+jdk1.3
如果哪位朋友碰到过这样的问题,不吝赐教.

星期三 六月 13 11:27:28 CST 2001:<E> <ServletContext-General> Servlet failed with Exception
java.lang.ClassCastException: cn.com.food.entity.gako2.Gako2EJBHomeImpl_ServiceStub
at jsp_servlet._schoollunch._tiaolichang._jspService(_tiaolichang.java:97)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:105)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:123)
at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:742)
at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:686)
at weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:
247)
at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:361)
at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:261)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
...全文
100 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
恐怕没人能搞定.我只能放弃了.
luodi 2001-06-14
  • 打赏
  • 举报
回复
总觉得你的EJB Bean的名字有点混淆。
从你的ejb-jar.xml 中可以看出,EJB Bean的名字叫做Gako2Home,它的Home类名字也叫Gako2Home,似乎有点奇怪,是不这个<ejb-name>中应该是与<ejb-class>名字相同,叫Gako2EJB会正常一点,符合正常的命名习惯吧。
  • 打赏
  • 举报
回复
META-INF/ejb-jar.xml 如下,好象没有ejb/env
<?xml version="1.0"?>

<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>

<ejb-jar>
<enterprise-beans>
<entity>
<ejb-name>Gako2Home</ejb-name>
<home>cn.com.food.entity.gako2.Gako2Home</home>
<remote>cn.com.food.entity.gako2.Gako2</remote>
<ejb-class>cn.com.food.entity.gako2.Gako2EJB</ejb-class>
<persistence-type>Bean</persistence-type>
<prim-key-class>cn.com.food.entity.gako2.Gako2PK</prim-key-class>
<reentrant>False</reentrant>
</entity>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>Gako2Home</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
luodi 2001-06-13
  • 打赏
  • 举报
回复
看看这个ejb jar的META-INF/ejb-jar.xml 文件中关于 ejb/env的环境设置部分是怎么样的。
  • 打赏
  • 举报
回复
jsp中产生错误的代码如下:
Properties props = System.getProperties();
javax.naming.Context ctx = new javax.naming.InitialContext(props);
Gako2Home home = (Gako2Home) ctx.lookup("Gako2Home");

就在第3行产生错误.

该jsp编译后的java文件如下:
java.util.Properties properties = System.getProperties();
InitialContext initialcontext = new InitialContext(properties);
Gako2Home gako2home = (Gako2Home)initialcontext.lookup("Gako2Home");

我朋友的机器,编译产生部署ejb都是成功的.关键到从环境属性中读取home时就错了,实在不明白问题在哪里.明知道是配置的问题,但是到底是哪儿配置的不一样呢?
除了朋友的机器是win2k是装在d盘,而我的win2k是装在c盘这个不同外,并无其他不同.不过也许有,但是我不知道而已.请诸位大侠指点江山.

  • 打赏
  • 举报
回复
应该不会,weblogic.properties,startweblogic.cmd文件都从我这里直接copy的.
seal_kh 2001-06-13
  • 打赏
  • 举报
回复
你同事机器上的weblogic.properties文件中的classpath可能有问题.
仔细对对.
  • 打赏
  • 举报
回复
我把他的jar和jar解开后的class文件放到class目录下,并把jar的路径加如weblogic配置文件.
然后就能正确调用.与他的机器不相关.没有分布式调用.
gdsean 2001-06-13
  • 打赏
  • 举报
回复
同样的文件放到你的机器上却能正常运行,你客户端调用ejb是不是分布式的?
你该把使用ejbc编译过的jar解开放到weblogic的class路径下做client的调用文件。
分布式调用客户端需要stub和impl等等文件
  • 打赏
  • 举报
回复
估计这样古怪的问题,没有人碰到过.哈哈.

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧