2009-08-20 4 views
3

.NET에서 객체를 serailize하고 Java에서 deserialize 할 때 호환성 문제가 있습니까?.NET에서 Java 직렬화/직렬화 해제 호환성

.NET 플랫폼에서 내가 쿠키를 가지고 :

내가

.NET

에 연재 된 자바 객체를 탈 직렬화의 문제에 직면하고 여기에 자세한 문제 설명이다. 1. 쿠키는 으로 serialize됩니다. 2. 그런 다음 Triple DES algo를 사용하여 암호화됩니다. 3. 자바 플랫폼 1. 해독 일부 바이트 2 역 직렬화

새로운 ObjectInputStream를 같은 (새이 InputStream를 사용하여 바이트를 제공 삼중 DES를 사용하여 쿠키 (바이트 [자바 응용 프로그램

에 가로 질러 보내기 ] decryptedCookie)). readObject();

내가 얻는 예외 스택 추적은 다음과 같습니다 java.io.StreamCorruptedException가 : 유효하지 않은 스트림 헤더 :. java.io.ObjectInputStream의에서 java.io.ObjectInputStream.readStreamHeader (알 수없는 소스) 에서 2F774555 (알 수없는 소스)

+1

무슨 일로 직렬화? 바이트? xml? –

+0

귀하의 코드는 무엇입니까? –

답변

5

WOX 시리얼 라이저는 .NET 및 Java에 대한 상호 운용 가능한 직렬화를 제공합니다.

+0

C# /.NET과 Java는 호환되기 위해서만 WOX 시리얼 라이저를 사용해야 할 것입니까? 다른 옵션이 있습니까? –

+0

다른 플랫폼의 형식을 복제하려면 .Net 또는 Java에서 serialization/deserialization을 직접 처리하는 것이 유일한 방법입니다. 이것이 바로 WOX 프로젝트의 전체적인 이유입니다. –

+0

업데이트 : JSON 직렬화는 원래의 게시물 이후로 인기있는 크로스 플랫폼 직렬화 메커니즘이되었습니다. 상당히 컴팩트 한 텍스트 표현이지만 바이너리 형식만큼 컴팩트하지는 않습니다. –

1

xml로 serialize하면 Java에서 직렬화되지 않는 문제가 발생하지 않아야합니다. 더 나쁜 경우에는 객체를 재구성하기 위해 자신 만의 코드를 작성해야하기 때문입니다.

+0

.NET에서 문자열 직렬화와 다른 직렬화는 어떻게 정보를 제공합니까? ? 궁극적으로 중요한 것은 자바에서 비 직렬화하는 방법입니다. 아니야 ?? 내가 이해하는 것은 ObjectInputStream이 java에서 deserialize하고 여기서 작동하지 않습니다. 알려주세요. –

+0

나는 결코 자바에서 desearialized, 내가 말하고 싶은 건, UR 객체의 XML을 가지고 있다면, XML을 파싱하고 자바에서 UR 객체를 빌드 할 코드를 작성해야한다. – Daniel

0

자바와 .Net 직렬 변환 방식이 다릅니다. 다른 개체의 개체를 어떻게 알 수 있습니까? 닷넷은 사전과 자바 맵을 가질 것인가? (문자열의 bnary 표현과 다를 수 있습니다.)

오브젝트 매핑을 수행하기 위해 이해하고 코딩하는 데이터 형식을 사용해야합니다. 따라서 위의 XML 및 WOX에 대한 대답은 다음과 같습니다. 잘.