我使用JAXB取消/编码从服务器获取的XML消息。通常我在字段中获取XMLGregorianCalendar值,这些值在描述XSD文件中定义为xs:dateTime,因此到XMLGregorianCalendar的转换由JAXB自动完成。来自XSD文件的示例然而,一个字段被定义为xs:string是这样的:但我收到一个应该代表日期时间的值:2014-08-31T15:00:00Z有什么好的方法,如何将这个字符串转换为XMLGregorianCallendar,还是我应该使用SimpleDateFormat并手动输入模式?我觉得这可能是一个危险的部分。 最佳答
我正在开发一个以XML形式来回调用的Web服务程序。然而,我的问题不在于此。当我在我的机器上本地(在Eclipse中)运行它时,它似乎可以工作。但是,当我的同事运行它时/如果我尝试在服务器上运行它,他甚至在调用Web服务之前就得到了这个异常:ClientMain.javajava.lang.IllegalArgumentException中的异常#6:2012-07-09T08:19:44-0400有谁知道为什么它会在一台机器上而不是另一台机器上进行争论?构建应该不是问题,因为我将整个eclipse工作区复制到拇指驱动器上(因此所有相关的jar和构建路径都应该保留下来)。就服务器运行而
我有一个代表XML模式的POJO对象树。这是使用以下jaxbant脚本创建的。我想根据模式验证根POJO及其子实体是否缺少属性。我的代码如下:(省略try/catchblock,灵感来自SO问题HowtovalidateagainstschemainJAXB2.0withoutmarshalling?)publicbooleanvalidateAgainstSchema(Pojopojo){JAXBContextjc;jc=JAXBContext.newInstance(Pojo.class);SchemaFactorysf=SchemaFactory.newInstance(XMLC
我在将日历对象转换为YYYY-MM-DDHH:mm:ss格式的XML公历时遇到了一些问题。我当前的代码是:CalendarcreateDate=tRow.getBasic().getDateCreated(0).getSearchValue();DatecDate=createDate.getTime();GregorianCalendarc=newGregorianCalendar();c.setTime(cDate);XMLGregorianCalendardate2=DatatypeFactory.newInstance().newXMLGregorianCalendar(c);
不久前我遇到了XMLGregorianCalendar类,它让GregorianCalendar看起来很轻量的方式给我留下了深刻的印象。;)最近,我注意到一个方法BitIntegergetEon()让我很困惑。来自XMLGregorianCalendar的JavadocgetYear()isavaluebetween-(10^9-1)to(10^9)-1orDatatypeConstants.FIELD_UNDEFINED.getEon()ishighorderyearvalueinbillionofyears.我突然想到,地球上白天的长度在数百万年中发生了显着变化,一年中的天数也发生
当像这样创建一个新的XMLGregorianCalendar实例时,我真的需要处理DatatypeConfigurationException异常,还是我可以安全地抑制它?try{header.setRequestDateTime(DatatypeFactory.newInstance().newXMLGregorianCalendar(newGregorianCalendar()));}catch(DatatypeConfigurationExceptione){//pass}我对thedocumentation的解读一些粗略的逻辑说这不会真正抛出异常,除非我给它一些错误的输入。在上
从xml解码到JAXB的Java类时,我想将“javax.xml.datatype.XMLGregorianCalendar”更改为“java.util.Date”。但我没有在Java类中放置任何@XmlJavaTypeAdapter的注释。所以,我打算尝试使用@XmlJavaTypeAdapters的注解,但我不知道如何使用它...请展示使用它的示例。 最佳答案 有趣的是,您实际上不需要将XMLGregorianCalendar调整为Date,因为JAXB本身支持java.util.Date——如下所示:@XmlAccessorT
在测试可在系统之间映射日期时间类型的Web服务时,我注意到在公历开始时间之前发送任何日期会导致转换为最终类型时准确性下降,最终结果总是在该范围内稍早一些几天。我将问题缩小到确切的范围,但是我仍然无法弄清为什么要这样进行转换,从documentation中可以看出,儒略历用于公历开始前的日期时间:1582年10月15日。问题行在从XMLGregorianCalendar到GregorianCalendar的强制转换,第78行:calendarDate=argCal.toGregorianCalendar();从第86行的calendarDate提取时间时:cal.setTime(cale
当我喜欢下面的时候,GregorianCalendarcalendar=newGregorianCalendar(TimeZone.getTimeZone("UTC"));calendar.setTime(startTime);//startTimeDateDatatypeFactory.newInstance().newXMLGregorianCalendar(calendar);我得到类似2015-04-15T11:04:30.000Z的输出。我希望它像2015-04-15T11:04:30.000。有什么办法可以实现吗? 最佳答案
我正在为公开(.wsdl)契约(Contract)的Web服务开发客户端,该契约(Contract)要求请求参数中的1为yyyy-MM-dd格式,但是基于.wsdl自动生成的POJOS将日期属性创建为输入XMLGregorianCalendar。我的问题不是与XMLGregorianCalendar之间的转换,请参阅下面的实用程序:publicstaticXMLGregorianCalendartoXMLGregorianCalendar(Calendarc){GregorianCalendargc=newGregorianCalendar();gc.setTimeInMillis(c