Hi
On 27/07/14 22:44, javaworkinggirl wrote:
Yes this error has to do with the changes I made  to use jsr-303 bean
validation.
ERROR:
java.lang.ClassCastException: Cannot cast
com.twc.ctg.ecp.model.csg.CsgEntitlementBase to
com.twc.ctg.ecp.model.csg.CsgEntitlement


Where is this exception coming from ? Can you provide more info if it is coming from CXF ?

Cheers, Sergey

Originally, before bean validation additions, we had one class that had 7
fields.  on a PUT only 5 were required, on a POST 2 additional (total of
  7) are required.  We did the validation manually in the rest service.
  This worked for json and xml.

Then I upgraded to cxf 3.0.0 to use Bean Validation.  I ended up spliting
the class into 2, one was the base had 5 required fields (for the PUT).
  Next class inherited from the base class and added the 2 other fields.
  BOTH classes have the same @XmlRootElement (our client wants it this way).
  I was getting a class cast exception when trying the xml request.  It
worked OK for json.

So is it that the marshaller doesn't like having the same @XmlRootElement
for 2 classes?

What is a better solution for this situation?


On Sun, Jul 27, 2014 at 12:42 PM, Sergey Beryozkin [via CXF] <
[email protected]> wrote:

Hi

It may be the validation related issue. Can you disable the validation
and retry ?

Sergey
On 26/07/14 07:43, javaworkinggirl wrote:

Hi.

I upgraded to cxf 3.0.0 and now my REST service works fine with json but
returns 400 bad request with xml.  Same test with xml and json on my
previous system with cxf 2.7.6 passes.

What could I be missing?  Are there more/different .jars that need to be
included? Does an xml provider need to be specified?  Something else?

Thanks.

Response:
HTTP/1.1 400 Bad Request
Content-Length: 0
Date: Sat, 26 Jul 2014 04:37:21 GMT
Server: Jetty(8.1.15.v20140411)


pom.xml:
     <dependency>
              <groupId>org.apache.cxf</groupId>
              <artifactId>cxf-rt-frontend-jaxrs</artifactId>
              <version>${apacheCxfVersion}</version>
           </dependency>
           <dependency>
              <groupId>org.apache.cxf</groupId>
              <artifactId>cxf-rt-frontend-jaxws</artifactId>
              <version>${apacheCxfVersion}</version>
           </dependency>
           <dependency>
              <groupId>org.apache.cxf</groupId>
              <artifactId>cxf-rt-transports-http-jetty</artifactId>
              <version>${apacheCxfVersion}</version>
           </dependency>

           <dependency>
              <groupId>org.apache.cxf</groupId>
              <artifactId>cxf-core</artifactId>
              <version>${apacheCxfVersion}</version>
              <exclusions>
                 <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                 </exclusion>
              </exclusions>
           </dependency>

          <dependency>
              <groupId>org.apache.cxf</groupId>
              <artifactId>cxf-rt-rs-client</artifactId>
              <version>${apacheCxfVersion}</version>
              <exclusions>
                 <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                 </exclusion>
              </exclusions>
           </dependency>

applicationContext.xml:

        <jaxrs:server id="ecpWebServices"
basePackages="com.twc.ctg.ecp.service.rest.custom"
address="http://0.0.0.0:8877"; depends-on="activeMQConnectionFactory">
           <jaxrs:inInterceptors>
              <ref bean="validationInInterceptor"/>
           </jaxrs:inInterceptors>
           <jaxrs:outInterceptors>
              <ref bean="validationOutInterceptor"/>
           </jaxrs:outInterceptors>
           <jaxrs:serviceBeans>
              <ref bean="ecpAdminRestServiceV1"/>
              <ref bean="ecpApplicationRestServiceV1"/>
              <ref bean="ecpEntitlementRestServiceV1"/>
              <ref bean="ecpEntitlementRestServiceV2"/>
              <ref bean="ecpMetricsRestServiceV1"/>
              <ref bean="ecpAlertsRestServiceV1"/>
              <ref bean="ecpCDRestServiceV1"/>
           </jaxrs:serviceBeans>
           <jaxrs:providers>
              <bean
class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider"/>
              <ref bean="genericRestExceptionMapper"/>
           </jaxrs:providers>

REST service:
   @POST
     @Path("/entitlement")
     @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
     @HeaderValidation
     @Valid
     public Response postEntitlement(@Context final HttpServletRequest
request, @NotNull @Valid final Entitlement Entitlement) throws
GenericRestException
     {
. . .
}




--
View this message in context:
http://cxf.547215.n5.nabble.com/Upgraded-to-3-0-0-now-Rest-service-receiving-xml-give-400-Bad-request-tp5746953.html
Sent from the cxf-user mailing list archive at Nabble.com.




------------------------------
  If you reply to this email, your message will be added to the discussion
below:

http://cxf.547215.n5.nabble.com/Upgraded-to-3-0-0-now-Rest-service-receiving-xml-give-400-Bad-request-tp5746953p5746966.html
  To unsubscribe from Upgraded to 3.0.0, now Rest service receiving xml
give 400 Bad request, click here
<http://cxf.547215.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5746953&code=amF2YXdvcmtpbmdnaXJsQGdtYWlsLmNvbXw1NzQ2OTUzfC0xMTE1Njg5NTY4>
.
NAML
<http://cxf.547215.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>





--
View this message in context: 
http://cxf.547215.n5.nabble.com/Upgraded-to-3-0-0-now-Rest-service-receiving-xml-give-400-Bad-request-tp5746953p5746967.html
Sent from the cxf-user mailing list archive at Nabble.com.



--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

Reply via email to