我已生成了java代码,在java中调用GetAllFilmInformation的程序如下: filmBasicAttributeList = new FilmBasicAttributeListHolder(); //实例化out参数 result = getFilm.GetAllFilmInformation(filmBasicAttributeList);//调用远程方法 但程序报错如下:<h1>Error: 500</h1> <h2>Location: /src/FILM/film_main.jsp</h2><b>Internal Servlet Error:</b><br>null<pre>nulljavax.servlet.ServletExceptionnull at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:386)null at src.FILM._0002fsrc_0002fFILM_0002ffilm_0005fmain_0002ejspfilm_0005fmain_jsp_3._jspService(_0002fsrc_0002fFILM_0002ffilm_0005fmain_0002ejspfilm_0005fmain_jsp_3.java:80)null at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:126)null at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)null at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.java:174)null at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java:261)null at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:369)null at com.borland.jbuilder.webserverglue.tomcat.jsp.JspLoaderEcho.service(Unknown Source)null at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)null at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:503)null at org.apache.tomcat.core.ContextManager.service(ContextManager.java:559)null at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:160)null at org.apache.tomcat.service.TcpConnectionThread.run(SimpleTcpEndpoint.java:338)null at java.lang.Thread.run(Thread.java:484)null</pre>null<b>Root cause:</b>null<pre>nulljava.lang.NullPointerExceptionnull at FILM.film.film_query(film.java:152)null at src.FILM._0002fsrc_0002fFILM_0002ffilm_0005fmain_0002ejspfilm_0005fmain_jsp_3._jspService(_0002fsrc_0002fFILM_0002ffilm_0005fmain_0002ejspfilm_0005fmain_jsp_3.java:70)null at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:126)null at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)null at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.java:174)null at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java:261)null at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:369)null at com.borland.jbuilder.webserverglue.tomcat.jsp.JspLoaderEcho.service(Unknown Source)null at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)null at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:503)null at org.apache.tomcat.core.ContextManager.service(ContextManager.java:559)null at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:160)null at org.apache.tomcat.service.TcpConnectionThread.run(SimpleTcpEndpoint.java:338)null at java.lang.Thread.run(Thread.java:484)null</pre>null
请问,在IDL定义的方法中,如方法的参数中包含有OUT参数,如以下方法: long GetAllFilmInformation( out FilmBasicAttributeList cl_film_basic_attribute_list ),那么我在JAVA中该怎么调用呢?
我在java中已对方法的参数类filmBasicAttributeList进行了实例化,但进行远程调用时,却报参数不能为空的错误,如下的方法: result = getFilm.GetAllFilmInformation(filmBasicAttributeList);//调用远程方法 请问为什么啊??????
filmBasicAttributeList = new FilmBasicAttributeListHolder(); //实例化out参数
result = getFilm.GetAllFilmInformation(filmBasicAttributeList);//调用远程方法
但程序报错如下:<h1>Error: 500</h1>
<h2>Location: /src/FILM/film_main.jsp</h2><b>Internal Servlet Error:</b><br>null<pre>nulljavax.servlet.ServletExceptionnull at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:386)null at src.FILM._0002fsrc_0002fFILM_0002ffilm_0005fmain_0002ejspfilm_0005fmain_jsp_3._jspService(_0002fsrc_0002fFILM_0002ffilm_0005fmain_0002ejspfilm_0005fmain_jsp_3.java:80)null at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:126)null at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)null at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.java:174)null at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java:261)null at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:369)null at com.borland.jbuilder.webserverglue.tomcat.jsp.JspLoaderEcho.service(Unknown Source)null at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)null at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:503)null at org.apache.tomcat.core.ContextManager.service(ContextManager.java:559)null at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:160)null at org.apache.tomcat.service.TcpConnectionThread.run(SimpleTcpEndpoint.java:338)null at java.lang.Thread.run(Thread.java:484)null</pre>null<b>Root cause:</b>null<pre>nulljava.lang.NullPointerExceptionnull at FILM.film.film_query(film.java:152)null at src.FILM._0002fsrc_0002fFILM_0002ffilm_0005fmain_0002ejspfilm_0005fmain_jsp_3._jspService(_0002fsrc_0002fFILM_0002ffilm_0005fmain_0002ejspfilm_0005fmain_jsp_3.java:70)null at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:126)null at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)null at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.java:174)null at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java:261)null at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:369)null at com.borland.jbuilder.webserverglue.tomcat.jsp.JspLoaderEcho.service(Unknown Source)null at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)null at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:503)null at org.apache.tomcat.core.ContextManager.service(ContextManager.java:559)null at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:160)null at org.apache.tomcat.service.TcpConnectionThread.run(SimpleTcpEndpoint.java:338)null at java.lang.Thread.run(Thread.java:484)null</pre>null
long GetAllFilmInformation( out FilmBasicAttributeList
cl_film_basic_attribute_list ),那么我在JAVA中该怎么调用呢?
result = getFilm.GetAllFilmInformation(filmBasicAttributeList);//调用远程方法
请问为什么啊??????
你的getFilm是否是正确的引用?
在执行此操作之前有没有执行过别的方法?(可以验证你的引用是正确的)