可以JAX-WS將XML schema date(xs:dateTime
)及其時間區分?轉到Java Calendar
?JAX-WS可以將XSD日期(xs:dateTime)映射到Java日曆嗎?
3
A
回答
2
是的,它可以。
合同第一種方法
您需要使用jaxb:javaType
元素。有一些一般信息here和你需要做的一個例子here。
合同最後一種方法
@WebMethod(operationName = "getTest")
public Calendar getTest(@WebParam(name = "input") Calendar input) {
input.roll(Calendar.DAY_OF_YEAR, 1);
return input
}
將映射到:
<xs:complexType name="getTest">
<xs:sequence>
<xs:element name="input" type="xs:dateTime" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="getTestResponse">
<xs:sequence>
<xs:element name="return" type="xs:dateTime" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
1
我認爲這將默認工作; JAXB(JAX-WS實現使用的數據綁定)應該知道如何在XML值和java.util.Calendar之間進行轉換。
如果不是,則用於XML的默認日期/時間數據類型是javax.xml.datatype.XMLGregorianCalendar,可以使用方法toGregorianCalendar()轉換它(它將是java.util.GregorianCalendar類型,java.util類型.Calendar子類)。所以有一種可能性是將數據綁定到XMLGregorianCalendar,然後在訪問時只需將其來回轉換。這也可以通過使用XMLJavaTypeAdapter自動完成。
相關問題
- 1. Hibernate可以將Java日曆對象映射到SQL TIMESTAMP列嗎?
- 2. 日曆映射日曆
- 3. 如何將sql日期映射到LocalDate
- 4. 使用Nhibernate將Oracle日期映射到日期時間3.2
- 5. Dozer InstantiationException映射日曆類
- 6. 將Java日期對象映射到XML架構日期時間格式
- 7. 可以將映射映射爲0嗎?
- 8. 我們可以強制執行jaxb globalbindings的映射來映射xs:dateTime到java.util.Date
- 9. Java日曆日期檢查
- 10. Java中的日期/日曆
- 11. Java日期/日曆奇怪
- 12. 映射MySql的日期爲Java對象
- 13. 將HTML輸入日期映射到Java對象的LocalDate
- 14. 使用Hibernate將Oracle日期映射到Java對象
- 15. Hadoop可寫日期/日曆
- 16. WPF日曆可見日期
- 17. Php將日曆月添加到日期
- 18. 將日曆添加到iPhone日曆時的日期問題
- 19. Elasticsearch日期格式映射
- 20. sqlserver休眠日期映射
- 21. Elasticsearch - 日期時間映射
- 22. 我可以開始將asp.net的日曆控件作爲未來日期嗎?
- 23. Java - 將日期時間轉換爲公曆日曆時間(日期)
- 24. Java 8日期API與日曆/日期/日期格式
- 25. 映射日期時間從/到子屬性日期時間
- 26. 根據結束日期映射sql列到日期
- 27. XSD-XSD映射
- 28. 以回曆日期格式顯示日期的日曆
- 29. 日期時間到可空日期時間轉換器自動映射器
- 30. 如何序列化Java日曆和Java日期爲Javascript日期
如果我使用http://static.springsource.org/spring-ws/sites/1.5/reference/html/why-contract-first.html(生成WSDL中描述的最後合同方法,該怎麼辦?和來自Java源的模式),而不是您的示例假設的合同優先方法? – 2010-11-16 22:19:33
@Derek - 我已經更新了我的答案,但是我還沒有嘗試過最後一種方法。 – Catchwa 2010-11-16 23:56:43
我試過了你的建議,但沒有'@ WebParam',它可以工作。 – 2010-11-18 22:07:30