java.io.objectStreamexception이 Enums의 WTK 스터브 생성기에 사용되는 이유는 무엇입니까?
-
06-09-2019 - |
문제
인터페이스에 열거 된 WCF에서 구현 된 웹 서비스를 사용하고 있습니다. 나는 Java Blackberry 클라이언트에서 이것을 부르려고 노력하고 있습니다. Eclipse를 사용하여 BlackBerry의 Java 응용 프로그램을 개발하고 있습니다. 나는 그것을 사용하고있다 Sun Java 무선 툴킷 (wtk) 2.5.2 웹 서비스가 다소 크기 때문에 (Windows Mobile 클라이언트가 이미 사용하고 있음) 스터브 코드를 생성합니다.
WTK를 사용하여 스터브 코드를 생성하려고하면 열거에 대한 Eclipse에서 오류가 발생합니다. 다음 함수에서는 java.io.objectStreamException이 유형으로 해결 될 수 없다고 불평합니다.
private Object readResolve()
throws java.io.ObjectStreamException {
return fromValue(getValue());
}
스터브 생성기를 실행할 때 CLDC 1.0 또는 CLDC 1.1에 대한 스위치가 있습니다. 두 옵션 모두로 생성하면 동일한 문제가 발생합니다.
나는 a를 찾았다 포럼 게시물 응답없이 태양에서 이것에 대해. 이 포스트의 사람은 "이제 java.io.objectStreamexception은 CLDC에 있지 않지만 대신 CDC에 있습니다. J2ME를위한 웹 서비스를위한 스터브를 만들기위한 좋은 도구가 있습니까?"라고 말합니다. [Documentation을 보면 CLDC 1.1에는 존재하지 않는지 확인했습니다 3).
이 상황을 해결하기 위해 Eclipse에는 두 가지 빠른 수정 사항이 있습니다. 1) 'java.io'또는 2) Packet 'java.io'또는 2) 수정 프로젝트 설정 (참조를 추가하기를 원한다).
업데이트:
JSR-172 사양의 말은 다음과 같습니다.
5.2.5 열거 JAX-RPC 서브 세트는 XML 열거를 지원하지 않습니다.
5.2.6 제한에 의해 도출 된 간단한 유형 JAX-RPC 서브 세트는 제한에 의해 간단한 유형을 도출하는 것을 지원하지 않습니다.
WCF 열거를위한 WSDL은 a를 생성합니다 <xs:simpleType>
~와 함께 <xs:restriction>
포함 <xs:enumeration>
. 그래서 나는이 필드가 대신 int라고 말하고 상수를 정의한다고 말합니까?
이것이 WTK의 버그입니까? 그렇다면, 나는 태양과 버그 보고서를 제출하고 그들이 응답하는지 알게 될 것입니다. 툴킷이 이것을 오류로 표시하지 않는 이유는 무엇입니까?
이제 인터페이스를 변경하여 JSR-172를 준수하는 인터페이스를 변경해야합니다. WSDL을 읽고 준수 문제를 지적 할 도구가 있습니까?
해결책
CLDC와 무선 툴킷은 모두 Java Micro Edition을 사용합니다. Javame은 Java 언어의 버전 2를 기반으로하며, 이는 제네릭과 열거가 없음을 의미합니다.
BlackBerry 핸드셋의 웹 서비스를 조사하는 첫 번째 단계는 JSR-172 사양을 읽는 것입니다.