繁体   English   中英

为什么会出现EJB java.rmi.MarshalException:CORBA MARSHAL异常?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM