2011-03-29 4 views
4

WSDL의 일부 필드에 xs : date 유형이 있지만 xs : dateTime으로 채워야하는 결함 웹 서비스에 액세스해야합니다.JAXB xs : date를 xs : dateTime으로 변경하기위한 바인딩?

JAXB Bindings 파일을 사용하여 WSDL의 필드 유형을 변경할 수 있습니까?

는 WSDL의 조각 :

 <xs:sequence> 
      <xs:element name="startTime" type="xs:date" /> 
      <xs:element name="stopTime" type="xs:date" /> 
     </xs:sequence> 
+0

XJC는 어쨌든'xs : date'와'xs : dateTime'을'java.util.Date'에 바인딩하므로 생성 된 코드도 다르지 않습니다. – skaffman

+0

하지만 요청이 xs : date 일 때 시간 부분이 없습니다. – peter

답변

1

당신은 XML 표현을 구성 할 @XmlSchemaType 주석을 사용할 수 있습니다 자세한 내용은

@XmlElement(name = "date-of-birth") 
@XmlSchemaType(name = "date") 
protected XMLGregorianCalendar dateOfBirth; 

은 다음을 참조하십시오

+0

웹 서비스에 액세스하기 위해 JAXB를 사용하여 Java 스텁을 생성하는 CXF를 사용하고 있습니다. 생성 된 필드의 유형은 XMLGregorianCalendar입니다. 요청할 때 SOAP 필드는 "2011-03-29 : 00 : 00.000 + 02 : 00"대신 "2011-03-29T15 : 00 : 00 + 00 : 00"으로 채워야합니다. +02 : 00 "입니다. – peter

+0

@peter - @XmlSchemaType 어노테이션으로 모델 클래스를 수정할 수 있습니까? 아니면 생성 된 것을 사용해야합니까? –

+0

안녕하세요, 생성 된 소스를 사용해야합니다. WSDL의 공급자가 다음 릴리스에서 버그를 수정하고 제가 작업 한 프로젝트가 아직 개발 단계에 있기 때문에 이론적 인 관심이 더 큽니다. Element가 xs : sequence의 Attribute와 같은 이름을 가질 때 이미 JAX-WS 바인딩 파일을 사용하여 WSDL의 문제를 수정합니다. 그래서 JAXB보다 JAX-WS가 더 많이 관련되어 있습니다. – peter

관련 문제