WebSphere Enterprise Service Bus, 버전 6.2.0 운영 체제: AIX, HP-UX, i5/OS, Linux, Solaris, Windows


Java를 서비스 데이터 오브젝트로 변환하는 데 사용되는 런타임 규칙

생성 코드를 올바르게 대체하거나 Java™를 SDO(Service Data Object)로 변환하는 데 관련된 가능 런타임 예외를 판별하려면 관련된 규칙을 이해해야 합니다. 대부분의 변환은 간단하지만 생성 코드를 변환할 때 런타임에 최적화하기 위한 복잡한 경우가 있습니다.

기본 유형 및 클래스

런타임은 서비스 데이터 오브젝트와 기본 Java 유형 및 클래스 간에 직접 변환을 수행합니다. 기본 유형 및 클래스는 다음과 같습니다.
  • Char 또는 java.lang.Character
  • Boolean
  • Java.lang.Boolean
  • Byte 또는 java.lang.Byte
  • Short 또는 java.lang.Short
  • Int 또는 java.lang.Integer
  • Long 또는 java.lang.Long
  • Float 또는 java.lang.Float
  • Double 또는 java.lang.Double
  • Java.lang.String
  • Java.math.BigInteger
  • Java.math.BigDecimal
  • Java.util.Calendar
  • Java.util.Date
  • Java.xml.namespace.QName
  • Java.net.URI
  • Byte[]

사용자 정의 Java 클래스 및 배열

Java 클래스 또는 배열에서 SDO로 변환하는 경우, 런타임은 Java 유형의 패키지 이름을 역변환하여 생성된 URI를 갖고 Java 클래스 이름과 동일한 유형을 갖는 데이터 오브젝트를 작성합니다. 예를 들어, Java 클래스 com.ibm.xsd.Customer는 유형 Customer를 갖는 URI http://xsd.ibm.com 및 SDO로 변환됩니다. 그런 다음 런타임은 Java 클래스 구성원을 검사하고 해당 값을 SDO의 특성에 지정합니다.

SDO에서 Java 유형으로 변환하는 경우, 런타임은 SDO 유형과 동일한 유형 이름 및 URI를 역변환하여 패키지 이름을 생성합니다. 예를 들어, 유형 Customer 및 URI http://xsd.ibm.com을 갖는 데이터 오브젝트는 Java 패키지 com.ibm.xsd.Customer의 인스턴스를 생성합니다. 그러면 런타임이 SDO의 특성에서 값을 추출하고 이 특성을 Java 클래스의 인스턴스에 있는 필드에 지정합니다.

Java 클래스가 사용자 정의 인터페이스인 경우 생성 코드를 대체하고 런타임이 인스턴스화할 수 있는 구체적 클래스를 제공해야 합니다. 런타임이 구체적 클래스를 작성할 수 없으면 예외가 발생합니다.

Java.lang.Object

Java 유형이 java.lang.Object인 경우 생성 유형은 xsd:anyType입니다. 모듈은 임의의 SDO를 사용하여 이 인터페이스를 호출할 수 있습니다. 런타임이 해당 클래스를 찾을 수 있는 경우, 런타임은 사용자 정의 Java 클래스 및 배열과 동일한 방법으로 구체적 클래스를 인스턴스화하려고 합니다. 그렇지 않은 경우 런타임은 SDO를 Java 인터페이스로 전달합니다.

해당 메소드가 java.lang.Object 유형을 리턴하더라도 메소드가 구체적 유형을 리턴하는 경우, 런타임은 SDO로만 변환합니다. 런타임은 다음 단락에 설명한 대로 사용자 정의 Java 클래스 및 배열을 SDO로 변환하는 메소드와 유사한 변환을 사용합니다.

Java 클래스 또는 배열에서 SDO로 변환하는 경우, 런타임은 Java 유형의 패키지 이름을 역변환하여 생성된 URI를 갖고 Java 클래스 이름과 동일한 유형을 갖는 데이터 오브젝트를 작성합니다. 예를 들어, Java 클래스 com.ibm.xsd.Customer는 유형 Customer를 갖는 URI http://xsd.ibm.com 및 SDO로 변환됩니다. 그런 다음 런타임은 Java 클래스 구성원을 검사하고 해당 값을 SDO의 특성에 지정합니다.

어느 경우라도 런타임이 변환을 완료하지 못하면 예외가 발생합니다.

Java.util 컨테이너 클래스

구체적 Java 컨테이너 클래스(예: Vector, HashMap, HashSet 등)로 변환하는 경우 런타임은 적합한 컨테이너 클래스를 인스턴스화합니다. 런타임은 사용자 정의 Java 클래스 및 배열에 사용된 메소드와 유사한 메소드를 사용하여 컨테이너 클래스를 채웁니다. 런타임이 구체적 Java 클래스를 찾을 수 없는 경우에는 SDO로 컨테이너 클래스를 채웁니다.

구체적 Java 컨테이너 클래스를 SDO로 변환하는 경우 런타임은 "Java를 XML로 변환에서 표시된 생성 스키마를 사용합니다."

Java.util 인터페이스

java.util 패키지에 있는 특정 컨테이너 인터페이스의 경우 런타임이 다음과 같은 구체적 클래스를 인스턴스화합니다.
표 1. Java 클래스 변환에 대한 WSDL 유형
인터페이스 구체적인 기본 클래스
콜렉션 HashSet
HashMap
목록 ArrayList
세트 HashSet

concept 개념 주제

이용약관 | 피드백


시간소인 아이콘 마지막 갱신 날짜: 2010년 7월 7일 수요일


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.doc/doc/cdev_rulesjavatoxmlruntime.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
이 Information Center는 Eclipse 기술을 기반으로 합니다(http://www.eclipse.org 웹 사이트 참조).