2016-04-13 13 views
2

Birkaç resim içeren bir JSP sayfası kullanarak öğeler eklemeye çalışıyorum. URL'leri alabilmem ve URL'yi veritabanında saklayabilmem için görüntülerin ipler olarak alınacağı değişkenleri açıkladım.Neden bir EJB java.rmi.MarshalException alıyorum: CORBA MARSHAL istisnası?

Veritabanı amaçları için EJB ve JPA kullanıyorum.

@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); 
    } 

// öğe ayrıntıları addItem yöntemine kodu vardır servlet için

kodum

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(); 
    } 

// ejb sınıf sınıf Alıcı ve ayarlayıcıların

bir POJO olduğu

// tblItem, JPA'dan otomatik olarak üretilen kodu olan bir varlık yöneticisi kullanılarak oluşturulan java sınıfıdır.

Ve istisna

javax.ejb.EJBException: java.rmi.MarshalException: CORBA MARSHAL 1330446343 Hayır; iç içe istisna: org.omg.CORBA.MARSHAL: ---------- BEGIN sunucu tarafı yığın izlemesi ---------- org.omg.CORBA.MARSHAL: FINE: 00810007: com.sun.corba.ee.impl.encoding de com.sun.proxy .0 Proxy154.endOfStream (Bilinmeyen Kaynak) adresindeki son fragmandan sonra BufferManagerReadStream altında taşma: OMG küçük kod: 7 tamamlandı. Com.sun.corba.ee.impl.encoding.CDRInputStream_1_1.grow (CDRInputStream_1_1.java:111) adresinde com.sun.corba.ee.impl.encoding.CDRInputStream_1_2 adresindeki BufferManagerReadStream.underflow (BufferManagerReadStream.java:122) . com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readValueTag de alignAndCheck (CDRInputStream_1_2.java:126) com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_long (CDRInputStream_1_0.java:433) en Com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value (CDRInputStream_1_0.java:918) adresinde (CDRInputStream_1_0.java:1672) com.sun.corba.ee.impl.encoding.CDRInputObject.read_value (CDRInputObject) .java: 518) com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl $ 14.read'de (DynamicMethodMarshallerImpl.java:383) , com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl. com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke (ReflectiveTie.java:171) adresindeki com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl adresindeki readArguments (DynamicMethodMarshallerImpl.java:450) . com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatch (ServerRequestDispatcherImpl.java:199)(ServerRequestDispatcherImpl.java:528) com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete (SharedCDRClientRequestDispatcherImpl.java:119) de com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequestRequest (MessageMediatorImpl.java:1549) dede com.sun.corba.ee.impl.protocol.ClientDelegateImpl.invoke com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke (StubInvocationHandlerImpl.java:198) 'den (ClientDelegateImpl.java:258) de com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke (StubInvocationHandlerImpl.java:150) com.sun.corba.ee.impl.presentation.rmi.codegen.CodegenStubBase.invoke adresindeki (CodegenStubBase.java: 226) com.olympics2016.beans .__ EventBeanRemote_Remote_DynamicStub.addEvent (com/olympics2016/beans/__ EventBeanRemote_Rem ote_DynamicStub.java) com.olympics2016.beans._EventBeanRemote_Wrapper.addEvent (com/olympics2016/beans/_EventBeanRemote_Wrapper.javax.servlet.http.HttpServlet.service Java) com.olympics2016.servlets.AddEventServlet.doPost (AddEventServlet.java:42 de ) javax.servlet.http.HttpServlet.service de (HttpServlet.java:707) (HttpServlet.java:790) org org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:318) de org.apache.catalina.core.StandardWrapper.service (StandardWrapper.java:1682) de . org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java:734) adresinden org.apache.catalina.core.StandardPipeline.invoke adresinden apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:160) StandardPipeline.java:673) com.sun.enterprise.web.WebPipeline.invoke adresinde (WebPipeline.java:99)org.apache.catalina.connector.CoyoteAdapter.doService (CoyoteAdapter.java:415) org.apache.catalina.connector en de org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:174) de. Com.sun.enterprise.v3.services.impl adresinden com.sun.enterprise.v3.services.impl.ContainerMapper $ HttpHandlerCallable.call (ContainerMapper.java:459) adresindeki CoyoteAdapter.service (CoyoteAdapter.java:282) . Org.glassfish.grizzly.http.server.HttpHandler.runService (HttpHandler.java:201) adresindeki ContainerMapper.service (ContainerMapper.java:167) , org.glassfish.grizzly.http.server.HttpHandler.doHandle (HttpHandler. java: 175) org.glassfish.grizzly.http.server.HttpServerFilter.handleRead (HttpServerFilter.java:235) at org.glassfish.grizzly.f adresinde ilterchain.ExecutorResolver $ 9.execute org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart de org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter (DefaultFilterChain.java:284) de (ExecutorResolver.java:119) (DefaultFilterChain.java : 201) org.glassfish.grizzly.filterchain.DefaultFilterChain.execute (DefaultFilterChain.java:133 de ) org.glassfish.grizzly.filterchain.DefaultFilterChain.process (DefaultFilterChain.java:112 de ) org.glassfish.grizzly de org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent de org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent (TCPNIOTransport.java:561) de .ProcessorExecutor.execute (ProcessorExecutor.java:77) (AbstractIOStrategy.java : 112) org.glassfish adresinde . org.glassfish.grizzly.strategies.WorkerThreadIOStrategy $ WorkerThreadRunnable.run de org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access $ 100 (WorkerThreadIOStrategy.java:56) de grizzly.strategies.WorkerThreadIOStrategy.run0 (WorkerThreadIOStrategy.java:117) (WorkerThreadIOStrategy.java:137) org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.doWork (AbstractThreadPool.java:565) org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.run (AbstractThreadPool.java:545)) java.lang.Thread.run (Thread.java:745)

---------- END sunucu tarafı yığın izlemesi ---------- vmcid: OMG küçük kod: 7 tamamlandı:

+2

Sunuladığınız yığın izi, EJB tarafına değil, web tarafına atılan bir istisnayı açıklıyor görünmektedir, ancak EJB'nin web tarafı 'addEvent()' saplamasının yürütülmesi sırasında gerçekleşir. Belki bir başkası detayları tanıyacaktır, ama cevap vermek için yeterli bilgiye sahip olmadığımızı düşünmeye meyilliyim.Sorunlu bileşenleri, bunları [mcve] olarak sunacak kadar azaltmayı düşünün. –

+0

tamam çok teşekkürler @JohnBollinger – dav191

+0

Bu 'ItemBeanRemote' ve 'ItemDetails' öğelerinden biri veya her ikisi de EJB sunucu tarafındaki sürümlerle eşleşmiyor. –

cevap

0

Mareşal İstisnası aşağıdaki nedenlerden biri nedeniyle oluşabilir:1) uzaktan yöntem çağrısı yapıldığında ve Java nesnesi için bir sıralama yapılmaz ve bu nedenle argüman veya dönüş değeri uzaktaki yönteme veya sunucuya ulaşmaz.

2) RMI'de kullandığımız protokol, gönderici ve alıcı tarafında farklı sürümlerde bulunuyorsa.

İlgili konular