2014-09-22 1 views
0

as3 객체를 Java로 deserialize 할 때. GraniteDS 던져이 Exeption :오류 deserialisation granitess amf 객체

java.lang.ClassNotFoundException: org.hibernate.collection.PersistentSet 

나는 몇몇 의존성이 pom.xml에 있어야한다고 생각한다. 어떤 아이디어?

답변

0

GraniteDS는 직렬화/역 직렬화 할 때 원시 유형과 컬렉션을 제외하고 최대 절전 모드/모든 포즈에 대해 알지 못합니다. 따라서 도서관이 있더라도 귀하의 경우에는 org.hibernate.collection.PersistentSet 화강암은 그것을 찾지 않습니다.

해결 방법 : 최대 절전 모드 다루는 AMF 객체와 다른 하나는 를 보내는 하나의 버전을 가지게됩니다

가, INT graniteDS를 사용하기위한 절전 모드 객체의 복사본을 만듭니다. 또한 두 개의 복사본이있는 것이 좋습니다.

import org.hibernate.collection.PersistentCollection; 
import org.hibernate.collection.PersistentList; 
import org.hibernate.collection.PersistentMap; 
import org.hibernate.collection.PersistentSet; 
import org.hibernate.collection.PersistentSortedMap; 
import org.hibernate.collection.PersistentSortedSet; 

그 종속성을 확인하다 : (: 3.1.0.GA 버전)

org.granite.hibernate.HibernateExternalizer 

느릅 나무가 최대 절전 의존성에 따라 externalizer로이 클래스를 제안

+0

죄송합니다. 귀하가 제안한 내용을 이해하지 못했습니다. 서로 다른 사본을 만드는 것은 무엇을 의미합니까? –

+0

@SamiJmii 의미, 최대 절전 모드 개체를 사용하여 UI에 데이터를 보내지 마십시오. Hibernate에 Person 객체가 있다면, Person이라는 이름의 또 다른 객체를 다른 패키지에서 같은 속성으로 생성하고이 객체를 사용하여 UI에 전송하십시오. – Zeus

+0

괜찮지 만,이 던지기 (classe not found)는 flex 클라이언트에서 서버로 데이터를 보낼 때 발생합니다. 내 '사람'데이터를 해당 자바 유형으로 deserialize 할 때 어떻게 든 발생합니다. 내 개인 데이터에는 원시 데이터 형식의 컬렉션 데이터도 없습니다. –

0

디버깅 후, graniteDS 보인다 최대 절전 모드 (3.X). 하지만 패키지 네임 스페이스는 최대 절전 모드 4에 더 이상 valide 없습니다 : 주위 작품으로

import org.hibernate.collection.internal.PersistentBag; 
import org.hibernate.collection.internal.PersistentList; 
import org.hibernate.collection.internal.PersistentMap; 
import org.hibernate.collection.internal.PersistentSet; 
import org.hibernate.collection.internal.PersistentSortedMap; 
import org.hibernate.collection.internal.PersistentSortedSet; 

: 우리는 같은 구현 HibernateExternalizer 우리의 오웬의 externalizer을 정의하고 수입을 변경할 수 있습니다. 우리는 granite-config.xml에서이 사용자 정의 외장 프로그램을 사용합니다.

graniteDS는 외부 종속성으로부터 구현을 분리하여 다음과 같이 변경 될 수 있습니다.