[
https://issues.apache.org/jira/browse/CXF-6528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14693405#comment-14693405
]
metatech commented on CXF-6528:
-------------------------------
Hi Sergey,
Yes, you guessed it right, we are using it with a Camel CXF Transport.
{code}
at
com.mycompany.myproject.MyRestService$1.toString(MyRestService.java:153)
at
org.apache.camel.impl.converter.ToStringTypeConverter.convertTo(ToStringTypeConverter.java:61)
at
org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:316)
at
org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:114)
at
org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:99)
at
org.apache.camel.core.osgi.OsgiTypeConverter.convertTo(OsgiTypeConverter.java:111)
at
org.apache.camel.component.http.DefaultHttpBinding.doWriteResponse(DefaultHttpBinding.java:286)
at
org.apache.camel.component.http.DefaultHttpBinding.writeResponse(DefaultHttpBinding.java:231)
{code}
As a workaround, I defined my own Date sub-type (class "$1" in the stack trace)
in my REST class, on which I have overridden the "toString()" method, in which
I convert it explicitly in the date format used in the old "toHttpDate" method,
and now it works fine.
For a more generic solution, I guess that the Camel DefaultHttpBinding could do
a custom conversion for this HTTP header instead of using the generic
TypeConverter's present in the registry. But this sounds like "ad hoc"
solution...
Thanks.
> JAX-RS "lastModified" generates timestamp with non-standard format
> ------------------------------------------------------------------
>
> Key: CXF-6528
> URL: https://issues.apache.org/jira/browse/CXF-6528
> Project: CXF
> Issue Type: Bug
> Components: JAX-RS
> Affects Versions: 3.0.0-milestone2
> Environment: ServiceMix 5.4.0
> Reporter: metatech
>
> In CXF 3.x (since CXF-5007), the date format has changed in the
> "Last-Modified" HTTP header generated by JAX-RS.
> In class org.apache.cxf.jaxrs.impl.ResponseBuilderImpl, the method
> "lastModified()" does not call the "toHttpDate" anymore.
> The format is now the default format used when calling "toString" on the date
> object.
> This format is not one of the 3 allowed by the HTTP specification (RFC2616,
> section 3.3.1).
> For instance, an HTTPClient will reject this date format :
> ====================
> Wrong date format for date Wed Aug 12 08:18:54 CEST 2015
> org.apache.commons.httpclient.util.DateParseException: Unable to parse the
> date Wed Aug 12 08:18:54 CEST 2015
> at
> org.apache.commons.httpclient.util.DateUtil.parseDate(DateUtil.java:170)
> at
> org.apache.commons.httpclient.util.DateUtil.parseDate(DateUtil.java:94)
> ====================
> Can you please restore the date conversion ?
> Thanks in advance.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)