응용 프로그램에 다음 오류가 발생합니다 :
WARNING: Cannot serialize session attribute org.ajax4jsf.application.AjaxStateHolder for session 27420D80AE859865FCD27E869C330659
java.io.NotSerializableException: com.his.op.patreg.web.RegistrationForm$5
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1377)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1173)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1377)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1173)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1377)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1173)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1377)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1173)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1377)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1173)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1377)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1173)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1377)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1173)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1377)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1173)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at java.util.HashMap.writeObject(HashMap.java:1129)
at sun.reflect.GeneratedMethodAccessor165.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at java.util.HashMap.writeObject(HashMap.java:1129)
at sun.reflect.GeneratedMethodAccessor165.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:440)
at org.ajax4jsf.application.AjaxStateHolder.writeObject(AjaxStateHolder.java:197)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1700)
at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:1092)
at org.apache.catalina.session.FileStore.save(FileStore.java:341)
at org.apache.catalina.valves.PersistentValve.invoke(PersistentValve.java:187)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1137)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
스택 추적은 어떤 개체가 직렬화 할 수 없는지에 대한 좋은 정보를 제공하지 않습니다. 문제가있는 아이를 찾는 좋은 방법이 있습니까?
내 클래스가 너무 커서 많은 속성이 포함되어 있으며 해당 속성에 여러 다른 속성이 포함되어있어 직렬화 할 수없는 속성을 찾기가 매우 어렵습니다.
-
답변 # 1
-
답변 # 2
와이즈 비즈 찾기 (
com.his.op.patreg.web.RegistrationForm
라는 이름) 타겟 디렉토리에 위치) IDE에서 열어서 디 컴파일합니다.내용은
com.his.op.patreg.web.RegistrationForm$5
내부의 익명 클래스에 대한 힌트를 제공해야합니다. 그것은. 그런 다음 해당 클래스가RegistrationForm$5.class
를 구현하게하십시오. . -
답변 # 3
패스 와이즈 비즈 JVM에.
예 :
RegistrationForm
추가 startup.bat에서Serializable
관련 자료
- python - 클래스가 유형이 아닌 객체에서 상속한다는 것은 무엇을 의미합니까?
- c# - 객체가 생성 된 클래스 확인
- 사전이있는 typescript 클래스 객체를 JSON 문자열로 변환
- python - 목록의 요소를 사용하여 클래스에 대한 개체를 만드는 방법
- c# - 새 클래스를 만들지 않고 xxx를 익명 클래스 (2 개의 속성 만 필요) 목록 객체로 매핑하는 방법은 무엇입니까?
- pointers - C ++에서 클래스 개체의 참조를 다른 클래스 개체로 올바르게 전달하는 방법
- Illuminate \ Support \ Collection 클래스의 객체를 Laravel 8에서 int로 변환 할 수 없습니다
- C ++의 객체 배열 정의에서 클래스 객체 배열 초기화 값 설정
- drupal - Request 객체 또는 다른 서비스 클래스에서 컨트롤러 클래스를 가져 오는 방법이 있습니까?
- java - JVM이 해당 클래스의 이름이있는 경우 해당 클래스에서 주 메서드에 액세스하기 위해 주 메서드를 포함하는 클래스의 개체를 만들 수없는 이유는 무엇입니까?
- c# - 직렬화 된 익명 개체를 다시 개체로 변환하는 방법은 무엇입니까?
- c++ - 클래스 개체가 자신의 개인 멤버에 액세스 할 수 없습니까?
- VBA Word normaldotm에서 클래스 모듈 개체 만들기
- oop - 이 Uml 다이어그램에서 좌석 등급은 어떤 연결을 사용해야합니까?
- pgp - LDAP 기반에서 클래스별로 개체를 검색하는 방법은 무엇입니까?
- javascript - 모음 js로 시작하는 객체 키 삭제
- java - Firestore에서 개체 인 필드를 가져 오는 방법은 무엇입니까?
- javascript - 주어진 값을 중첩 배열에 포함하는 객체에서 항목을 가져 오는 방법
- R의 새 개체 목록을 사용하여 msfit 개체 클래스 업데이트
- c# - Protobuf 직렬화 객체를 json으로
스택 추적의이 부분 :
는 직렬화 할 수없는 클래스입니다. 와이즈 비즈 그것은
RegistrationForm$5
에서 인스턴스화 된 익명 클래스임을 의미합니다. .