jsp调javabean调sessionBean调entityBean的问题,哪位高人指点一下,小妹这厢先谢过了!

时间:2022-07-14 19:08:32
我现在在用EJB开发一个东东,结构是先写EntityBean,然后用SessionBean调用该实体Bean,然后用JavaBean调用会话Bean,然后再用Jsp调用JavaBean,是不是太复杂?问题出在最后一步,用javabean自己的main函数调试的时候没有任何问题,但是jsp调用javabean的时候出现SessionBean的远程接口找不到的问题,哪位大虾知道啊!救我一命啦!出问题的语句(大箭头的那句)
      Context ctx = new InitialContext();
--> Object ref = ctx.lookup("ClaPlantManager");
      claPlantManagerHome = (ClaPlantManagerHome) PortableRemoteObject.narrow(ref, ClaPlantManagerHome.class);
      mymanager = claPlantManagerHome.create();

14 个解决方案

#1


是不没有将SessionBean的两个接口放到javaBean目录下?

#2


我全都放在一个工程里了,你所谓的将两个接口方到javabean目录下是怎么做的?

#3


你用的是什么应用服务器?你需要把你的war包发布到应用服务器下的
web container中。

#4


是不是jndi的名字配置不对呀?Ejb的发布有问题吧!

#5


我现在在用EJB开发一个东东,结构是先写EntityBean,然后用SessionBean调用该实体Bean,然后用JavaBean调用会话Bean,然后再用Jsp调用JavaBean,是不是太复杂?
----其实一点也不复杂,这种结构俺觉得倒是不错。

至于问题出在哪,呵,你总该把抛出的异常给俺看看吧:)

#6


我用的是BES,以后要用websphere,抛出的异常如下:
javax.naming.NameNotFoundException: Name ClaPlantManager is not bound in this Context

at org.apache.naming.NamingContext.lookup(NamingContext.java:811)

at org.apache.naming.NamingContext.lookup(NamingContext.java:194)

at org.apache.naming.SelectorContext.lookup(SelectorContext.java:183)

at javax.naming.InitialContext.lookup(InitialContext.java:350)

at makedecide.ClaPlantManagerTestClient1.<init>(ClaPlantManagerTestClient1.java:23)

at java.lang.Class.newInstance0(Native Method)

at java.lang.Class.newInstance(Class.java:237)

at java.beans.Beans.instantiate(Beans.java:207)

at java.beans.Beans.instantiate(Beans.java:51)

at org.apache.jsp.ClaplantAdd$jsp._jspService(ClaplantAdd$jsp.java:81)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)

at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)

at java.lang.Thread.run(Thread.java:484)

StandardWrapperValve[debugjsp]: Servlet.service() for servlet debugjsp threw exception

javax.servlet.ServletException: javax/ejb/EJBObject

javax.servlet.ServletException: javax/ejb/EJBObject

at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:463)

at org.apache.jsp.ClaplantAdd$jsp._jspService(ClaplantAdd$jsp.java:116)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)

at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)

at java.lang.Thread.run(Thread.java:484)

#7


是不是你的lookup写错了!好象是没找到哪个bean啊!

#8


我是用javabean里的main函数调用的sessionbean,完全没有问题,但是多加了一个jsp后就不行了!应该不是lookup的代码问题!

#9


可能是jndi的问题?
好长, 眼晕。 呵呵。

#10


jndi?那为什么直接调试javabean不会出错呢?

#11


JNDI在配置文件里定义Bean的信息了么?

#12


parms.put("java.naming.factory.initial", "com.ibm.ejs.ns.jndi.CNInitialContextFactory");

是否修改为IBM jndi.

#13


楼上的,你写的代码是干什么的?

#14


可能原因:
1. 你的claPlantManagerHome.class和claPlantManager.class没有放到你的放置javabean的class文件的目录下,导致在jsp文件里,找不到这两个接口的class文件,这是最有可能的错误
2.你的ejb和jsp是放到同一台机器上吗,是不是存在你的javabean测试时,是放到与ejb同一台机器上,但是实际运行时,是把jsp+javabean放到另外一台机器上,这是,你的javabean里就没有考虑与ejb不在同一台机器上,要考虑网络通信的问题


#1


是不没有将SessionBean的两个接口放到javaBean目录下?

#2


我全都放在一个工程里了,你所谓的将两个接口方到javabean目录下是怎么做的?

#3


你用的是什么应用服务器?你需要把你的war包发布到应用服务器下的
web container中。

#4


是不是jndi的名字配置不对呀?Ejb的发布有问题吧!

#5


我现在在用EJB开发一个东东,结构是先写EntityBean,然后用SessionBean调用该实体Bean,然后用JavaBean调用会话Bean,然后再用Jsp调用JavaBean,是不是太复杂?
----其实一点也不复杂,这种结构俺觉得倒是不错。

至于问题出在哪,呵,你总该把抛出的异常给俺看看吧:)

#6


我用的是BES,以后要用websphere,抛出的异常如下:
javax.naming.NameNotFoundException: Name ClaPlantManager is not bound in this Context

at org.apache.naming.NamingContext.lookup(NamingContext.java:811)

at org.apache.naming.NamingContext.lookup(NamingContext.java:194)

at org.apache.naming.SelectorContext.lookup(SelectorContext.java:183)

at javax.naming.InitialContext.lookup(InitialContext.java:350)

at makedecide.ClaPlantManagerTestClient1.<init>(ClaPlantManagerTestClient1.java:23)

at java.lang.Class.newInstance0(Native Method)

at java.lang.Class.newInstance(Class.java:237)

at java.beans.Beans.instantiate(Beans.java:207)

at java.beans.Beans.instantiate(Beans.java:51)

at org.apache.jsp.ClaplantAdd$jsp._jspService(ClaplantAdd$jsp.java:81)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)

at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)

at java.lang.Thread.run(Thread.java:484)

StandardWrapperValve[debugjsp]: Servlet.service() for servlet debugjsp threw exception

javax.servlet.ServletException: javax/ejb/EJBObject

javax.servlet.ServletException: javax/ejb/EJBObject

at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:463)

at org.apache.jsp.ClaplantAdd$jsp._jspService(ClaplantAdd$jsp.java:116)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)

at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)

at java.lang.Thread.run(Thread.java:484)

#7


是不是你的lookup写错了!好象是没找到哪个bean啊!

#8


我是用javabean里的main函数调用的sessionbean,完全没有问题,但是多加了一个jsp后就不行了!应该不是lookup的代码问题!

#9


可能是jndi的问题?
好长, 眼晕。 呵呵。

#10


jndi?那为什么直接调试javabean不会出错呢?

#11


JNDI在配置文件里定义Bean的信息了么?

#12


parms.put("java.naming.factory.initial", "com.ibm.ejs.ns.jndi.CNInitialContextFactory");

是否修改为IBM jndi.

#13


楼上的,你写的代码是干什么的?

#14


可能原因:
1. 你的claPlantManagerHome.class和claPlantManager.class没有放到你的放置javabean的class文件的目录下,导致在jsp文件里,找不到这两个接口的class文件,这是最有可能的错误
2.你的ejb和jsp是放到同一台机器上吗,是不是存在你的javabean测试时,是放到与ejb同一台机器上,但是实际运行时,是把jsp+javabean放到另外一台机器上,这是,你的javabean里就没有考虑与ejb不在同一台机器上,要考虑网络通信的问题