32.4. 런타임 Marshaller에 클래스 추가
32.4.1. 개요
Apache CXF 런타임에서 XML 데이터를 읽고 쓸 때 XML 스키마 유형을 대표 Java 유형과 연결하는 맵을 사용합니다. 기본적으로 맵에는 WSDL 계약 스키마
요소의 대상 네임스페이스에 정의된 모든 유형이 포함됩니다. 또한 WSDL 계약으로 가져온 모든 스키마의 네임스페이스에서 생성된 모든 유형을 포함합니다.
애플리케이션의 스키마 요소에서 사용하는 스키마 네임스페이스 이외의 네임스페이스에서 유형을 추가하는 것은 @ CryostatSee
also 주석을 사용하여 수행됩니다. 애플리케이션이 애플리케이션의 WSDL 문서 범위를 벗어나 생성된 유형으로 작업해야 하는 경우
@ CryostatSee
also 주석을 편집하여 CryostatB 맵에 추가할 수 있습니다.
32.4.2. @ CryostatSee also 주석 사용
@ CryostatSee
also 주석은 서비스의 SEI에 추가할 수 있습니다. 여기에는 CryostatB 컨텍스트에 포함할 쉼표로 구분된 클래스 목록이 포함되어 있습니다. 예 32.7. “CryostatB 컨텍스트에 클래스 추가의 구문” @ CryostatSeeAlso
주석을 사용하는 구문이 표시됩니다.
예 32.7. CryostatB 컨텍스트에 클래스 추가의 구문
import javax.xml.bind.annotation.XmlSeeAlso; @WebService() @XmlSeeAlso({Class1.class, Class2.class, ..., ClassN.class}) public class GeneratedSEI { ... }
CryostatB 생성 클래스에 액세스할 수 있는 경우 필요한 유형을 지원하기 위해 생성된 ObjectFactory
클래스를 사용하는 것이 더 효율적입니다. ObjectFactory
클래스를 포함하면 개체 팩토리에 알려진 모든 클래스가 포함됩니다.
32.4.3. 예
예 32.8. “CryostatB 컨텍스트에 클래스 추가” 는 @ CryostatSee
로 주석이 달린 SEI를 표시합니다.
예 32.8. CryostatB 컨텍스트에 클래스 추가
...
import javax.xml.bind.annotation.XmlSeeAlso;
...
@WebService()
@XmlSeeAlso({org.apache.schemas.types.test.ObjectFactory.class, org.apache.schemas.tests.group_test.ObjectFactory.class})
public interface Foo {
...
}