2013-05-19 3 views
2

나는이 오류가 무엇입니까 내가 해결하는 방법을 알고하지 않습니다EJB3.1 가지는 NotSerializableException

java.io.NotSerializableException : com.procc.dao. EJB31_Generated_ AlertFacade _Intf_ java.io에서 java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java:1180) java.io.ObjectOutputStream.defaultWriteFields (ObjectOutputStream.java:1528) 에서 에서 콩 _ .ObjectOutputStream.writeSerialData 자바에서 java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java:1174) 에서 java.io.ObjectOutputStream.writeOrdinaryObject (ObjectOutputStream.java:1416)에서 (ObjectOutputStream.java:1493) . io.ObjectOutputStream.writeObject (ObjectOutputStream.java:346) sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java에서 sun.reflect.NativeMethodAccessorImpl.invoke0 (기본 방법)에서 java.util.HashMap.writeObject (HashMap.java:1100)에서 : 57) sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) java.io.ObjectStreamClass.invokeWriteObject에서 java.lang.reflect.Method.invoke (Method.java:601)에서 에서 (ObjectStreamClass.java : java.io.ObjectOutputStream.writeOrdinaryObject (ObjectOutputStream.java:1416에서 java.io.ObjectOutputStream.writeSerialData (ObjectOutputStream.java:1480)에서 975) ) 0,123,516에서 java.io.ObjectOutputStream.writeSerialData (ObjectOutputStream.java:1493)에서 java.io.ObjectOutputStream.defaultWriteFields (ObjectOutputStream.java:1528) 에서java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java:1174) java.io.ObjectOutputStream.writeArray에서 java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java:1174) 에서 java.io.ObjectOutputStream.writeOrdinaryObject (ObjectOutputStream.java:1416) (ObjectOutputStream.java:1362)에서 at java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java:1170) at java.io.ObjectOutputStream.writeObject (ObjectOutputStream.java:346) at java.util.HashMap.writeObject (HashMap.java:1100) at sun.reflect.NativeMethodAccessorImpl.invoke0 (네이티브 메소드) sun.reflect. java.io에서 java.lang.reflect.Method.invoke에서 NativeMethodAccessorImpl.invoke sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)에서 (NativeMethodAccessorImpl.java:57) (Method.java:601) .ObjectStreamClass.invokeWriteObject java.io.ObjectOutputStream.writeOrdinaryObject에서 java.io.ObjectOutputStream.writeSerialData (ObjectOutputStream.java:1480)에서 (ObjectStreamClass.java:975) (ObjectOutputStream.java:1416) com.sun.faces.renderkit.ClientSideStateHelper.doWriteState에서 java.io.ObjectOutputStream.writeObject (ObjectOutputStream.java:346) 에서 java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java:1174) 에서 (ClientSideStateHelper .java : 325) ( ) com.sun.faces.renderkit.ClientSideStateHelper.writeState com.sun.faces.application.StateManagerImpl.writeState에서 com.sun.faces.renderkit.ResponseStateManagerImpl.writeState (ResponseStateManagerImpl.java:122)에서 (ClientSideStateHelper.java:173) (StateManagerImpl.java:166) 에서 com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView (FaceletViewHandlingStrategy.java:419)에서 (WriteBehindStateWriter.java:225) 에서 닷컴 .sun.faces.application.view.MultiViewHandler.renderView (MultiViewHandler.java:131) at com.sun.faces.lifecycle.RenderResponsePhase.execute (RenderResponsePhase.java:1) 21) com.sun.faces.lifecycle.LifecycleImpl.render (LifecycleImpl.java:139) javax.faces.webapp에서 에서 com.sun.faces.lifecycle.Phase.doPhase (Phase.java:101)에서. org.apache.catalina.core.StandardWrapperValve.invoke에서 FacesServlet.service org.apache.catalina.core.StandardWrapper.service (StandardWrapper.java:1550)에서 (FacesServlet.java:594) (StandardWrapperValve.java:281 org.apache에서 org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java:655) 에서 org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:175) AT) . catalina.core.StandardPipeline.invoke (StandardPipeline.java:595)) org.apache에서 org.apache.catalina.connector.CoyoteAdapter.doService (CoyoteAdapter.java:331) 에서 org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:161) 에서 . com.sun.enterprise에서 com.sun.enterprise.v3.services.impl.ContainerMapper $ AdapterCallable.call (ContainerMapper.java:317) 에서 catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:231) . com.sun.grizzly.http.ProcessorTa에서 v3.services.impl.ContainerMapper.service com.sun.grizzly.http.ProcessorTask.invokeAdapter (ProcessorTask.java:860)에서 (ContainerMapper.java:195) com.sun.grizzly.http.DefaultProtocolFilter.execute (DefaultProtocolFilter.java에서 sk.doProcess com.sun.grizzly.http.ProcessorTask.process (ProcessorTask.java:1056)에서 (ProcessorTask.java:757) : 229 com.sun.grizzly.DefaultProtocolChain에서) com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter (DefaultProtocolChain.java:137에서 ) com.sun.grizzly.DefaultProtocolChain.execute (DefaultProtocolChain.java:104에서) .exe (0120) 에서 com.sun.grizzly.ContextTask.run에서 colChainContextTask.doCall com.sun.grizzly.SelectionKeyContextTask.call (SelectionKeyContextTask.java:59)에서 (ProtocolChainContextTask.java:54) (ContextTask.java:71) COM com.sun.grizzly.util.AbstractThreadPool $ Worker.run (AbstractThreadPool.java:513) java.lang.Thread의에서 에서 .sun.grizzly.util.AbstractThreadPool $ Worker.doWork (AbstractThreadPool.java:532) . (스레드.자바 :이 AlertFacade 722)

이다

@Stateless AlertFacade가 AbstractFacade { @PersistenceContext (unitName = "flams_pu") 전용 EntityManager를 연장 Public 클래스 EM; 나는 JSF 관리 빈에서 사용

@Override 
protected EntityManager getEntityManager() { 
    return em; 
} 

public AlertFacade() { 
    super(Alert.class); 
} } 

.

는 EJB는 Serializable 있어야하는데? 나는 그것을 얻지 않는다.

답변

0

내가 시도하고 클래스 서명 implements Serializable에 추가합니다 도와주세요. 마커 인터페이스이기 때문에 어떤 메소드도 구현할 필요가 없습니다.

+1

괜찮습니다. 문제가 해결되었습니다. 실제로 JSF 관리 빈은 Serializable이므로 EntityManager가 포함되어 있으므로 직렬화 할 수없는 EJB 인스턴스를 직렬화하려고합니다. 해당 인스턴스에 일시적으로 추가하면 오류가 사라집니다. 도와 주셔서 감사합니다. – velocity

+0

내 대답이 유용하다고 생각되면 제게 upvote하십시오. 감사! –

관련 문제