2009-07-26 32 views
5

Trong Java EE 1.4 sử dụng JAX-RPC 1.1, làm cách nào tôi có thể hiển thị dịch vụ web, vì vậy wsdl có loại phức tạp (người) trong đó một trong các thuộc tính của người đó là ngày được hiển thị trong WSDL/XSD chỉ là một ngày (chẳng hạn như ngày sinh) thay vì ngày giờ (không cần thời gian) trong WSDL/XSD?Dịch vụ web Java, ngày xsd thay vì ngày giờ

tôi muốn xsd tham chiếu trong wsdl có

<xs:element name="birthdate" type="xs:date"/> 

thay vì

<xs:element name="birthdate" type="xs:dateTime"/> 

java.util.Calendar và java.util.Date cả dường như gây ra các kiểu dữ liệu xsd để là dateTime khi được hiển thị trong wsdl/xsd.

Tôi biết java EE 1.4 không có chú thích như java EE 5, nhưng có cách nào để yêu cầu dịch vụ web sử dụng kiểu dữ liệu xs: date không?

Trả lời

1

Tôi thực sự đã tìm ra cách thực hiện điều này đúng cách.

trong WEB-INF/wsdl/(schemaname) .xsd Tôi đã thay đổi kiểu dữ liệu cho đến ngày từ dateTime và triển khai lại dịch vụ và nó hoạt động với các loại java.util.Calendar hiện có của tôi.

0

Theo số IBM docs bạn có quyền, cả ngày và bản đồ ngày giờ thành Lịch. Có vẻ như không phải là cách tiêu chuẩn để chỉ sử dụng phần ngày, tất nhiên bạn có thể roll your own (thú vị là trang thứ hai của bài viết được đề cập nói ngày chỉ dành cho ngày nhưng trang 3 xác nhận nó là bản đồ cho Lịch).

Để tham chiếu, có một câu hỏi tương tự về doing this in WCF.

+1

Cảm ơn câu trả lời này, nó rất hữu ích, nhưng không trực tiếp giúp tôi giải quyết vấn đề của tôi về cách làm cho dịch vụ web hiển thị một wsdl với trường xs: date. Ứng dụng khách yêu cầu rằng wsdl chỉ hiển thị ngày, chứ không phải ngày tháng. – jasonmw

1

Tôi không nghĩ rằng bạn sẽ có thể đạt được điều này, JAX-RPC chỉ không có tính linh hoạt (đó là lý do tại sao nó bị giết trong JavaEE 5). Nói chung, tôi thường thấy rằng các máy phát WSDL không có khả năng biểu đạt để tạo WSDl chính xác mà tôi muốn, và vì vậy tôi có xu hướng sử dụng chúng để tạo WSDL làm điểm bắt đầu, và sau đó sửa đổi kết quả. Bạn sau đó máy chủ lên WSDL như một tập tin tĩnh chứ không phải là một tập tin được tạo ra. Nó không phải lý tưởng, nhưng nó cũng không phải là một vấn đề lớn.

Các vấn đề liên quan