[英]Why do i get an EJB java.rmi.MarshalException: CORBA MARSHAL exception?
我正在尝试使用具有两个图像的JSP页面添加项目。 我声明了变量以将图像检索为字符串,以便获取URL并将URL存储在数据库中。
我将EJB和JPA用于数据库目的。
我的servlet代码
ItemDetails id;
ItemBeanRemote ib;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String id = request.getParameter("id");
String name = request.getParameter("name");
double price = Double.valueOf(request.getParameter("price"));
String imgurl = request.getParameter("imgurl");
String imgurl2 = request.getParameter("imgurl2");
String location = request.getParameter("loc");
id = new ItemDetails(id, name, price, imgurl, imgurl2, location);
ib.addItem(id);
response.sendRedirect("View.jsp");
}
@Override
public void init() {
try {
Context initial = new InitialContext();
ib = (ItemBeanRemote) initial.lookup("itembean");
} catch (Exception ex) {
System.err.println("Caught an exception:");
ex.printStackTrace();
}
//具有addItem方法代码的ejb类
@Override
public void addEvent(ItemDetails details) {
try {
tblItem utt = new tblItem(details.getItemID(),details.getItemName(),
details.getPrice(),details.getImgUrl(),details.getImgUrl2(),details.getLocation());
em.persist(utt);
} catch (Exception ex) {
throw new EJBException(ex);
}
// item details是一个类,是带有getter和setter的POJO
// tblItem是使用实体管理器创建的Java类,该实体管理器具有从JPA自动生成的代码。
而且例外
javax.ejb.EJBException:java.rmi.MarshalException:CORBA MARSHAL 1330446343否; 嵌套的异常是:org.omg.CORBA.MARSHAL:---------- BEGIN服务器端堆栈跟踪---------- org.omg.CORBA.MARSHAL:罚款:00810007:消息vmcid中的最后一个片段之后BufferManagerReadStream中的下溢:OMG次要代码:7完成:com.sun.corba.ee.impl.encoding.BufferManagerReadStream.underflow(在com.sun.proxy。$ Proxy154.endOfStream(未知源)处为否com.sun.corba.ee.impl.encoding.CDRInputStream_1_1.grow(CDRInputStream_1_1.java:111)处的BufferManagerReadStream.java:122)com.sun.corba.ee.impl.encoding.CDRInputStream_1_2.alignAndCheck(CDRInputStream_1_2.java: 126)com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_long(CDRInputStream_1_0.java:433)com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readValueTag(CDRInputStream_1_0.java:1672) com.sun.corba.ee.impl.encoding.CDRInputObject.read_value(CDRInputObject.java:518)上的.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:918) .ee.impl.presentation.rmi.DynamicMetho dMarshallerImpl $ 14.read(DynamicMethodMarshallerImpl.java:383)位于com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl.readArguments(DynamicMethodMarshallerImpl.java:450)位于com.sun.corba.ee.impl.presentation。 .com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatchToServant(ServerRequestDispatcherImpl.java:528)上的.ReflectiveTie._invoke(ReflectiveTie.java:171)在com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatch上的。 (ServerRequestDispatcherImpl.java:199)com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequestRequest(MessageMediatorImpl.java:1549)com.sun.corba.ee.iprotoprotocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequest。 :119),位于com.sun.corba.ee.impl.protocol.ClientDelegateImpl.invoke(ClientDelegateImpl.java:258),位于com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:198) ),网址为com.sun.corba.ee.impl.presentation.rmi.StubInvoc com.sun.corba.ee.impl.presentation.rmi.codegen.CodegenStubBase.invoke(CodegenStubBase.java:226)上的ationHandlerImpl.invoke(StubInvocationHandlerImpl.java:150)在com.olympics2016.beans .__ EventBeanRemote_Remote_DynamicStub。 com.olympics2016.beans._EventBeanRemote_Wrapper.addEvent(com / olympics2016 / beans / _EventBeanRemote_Wrapper.java)上的com.olympics2016.beans.servlets.AddEvent.Servlet上的olympics2016 / beans / __ EventBeanRemote_Remote_DynamicStub.java)。的org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)的javax.servlet.http.HttpServlet.service(HttpServlet.java:790)的.http.HttpServlet.service(HttpServlet.java:707) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)位于org.apache.catalina.core.StandardPipeline.doInvoke( StandardPipeline.java:734),位于org.apache.catalina.core.StandardPipeline.invok e(StandardPipeline.java:673)位于com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)位于org.apache org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)上的.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)在com.sun.enterprise.v3.services.impl.ContainerMapper $ HttpHandlerCallable org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java)上的.call(ContainerMapper.java:459)在com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167) :201)在org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)在org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)在org.glassfish。在org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)上的grizzly.filterchain.ExecutorResolver $ 9.execute(ExecutorResolver.java:119)在org.glassfish.grizzly处。 org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)的filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)在org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent (AbstractIOStrategy.java:112)at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access $ 100(WorkerThreadIOStrategy.java:56)在org.glassfish。 org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:565)上的.grizzly.strategies.WorkerThreadIOStrategy $ WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)在org.glassfish.grizzly.threadpool.AbstractThreadPool $ W orker.run(AbstractThreadPool.java:545)at java.lang.Thread.run(Thread.java:745)
---------- END服务器端堆栈跟踪---------- vmcid:OMG次要代码:7已完成:否
发生元帅异常可能是由于以下原因之一:1)当完成远程方法调用并且未对Java Object进行封送处理时,参数或返回值将不会到达远程方法或服务器。
2)如果我们在RMI中使用的协议在发送方和接收方具有不同的版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.