This does not work?
LicenseList list = response.readEntity(LicenseList.class);
You could also try this:
LicenseList list = response.readEntity(new
GenericType<JAXBElement<LicenseList>>() {}).getValue();
javax.ws.rs.core.GenericType
On 11/26/2013 4:00 PM, Gabriella Turek wrote:
> No, I've tried that, it does not work. I get the following error:
>
> java.lang.ClassCastException: javax.xml.bind.JAXBElement cannot be cast to
> nz.org.riskscape.license.rest.domain.LicenseList
> at
> nz.org.riskscape.license.rest.RiskScapeLicenseServiceTest.testGetExpiredLic
> enses(RiskScapeLicenseServiceTest.java:102)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:5
> 7)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
> l.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
>
>
> --
> Dr Gabriella Turek
> Sr. Software Engineer, Systems Development Team
> NIWA Auckland, New Zealand
> Tel: +64 9 3754645
> www.niwa.co.nz
> NIWA - Enhancing the benefit of New Zealand¹s natural resources.
>
>
>> Date: Tue, 26 Nov 2013 15:51:56 -0500
>> From: Bill Burke <[email protected]>
>> Subject: Re: [Resteasy-users] Replacing ProxyFactory with
>> RestEasyWebTarget does not work
>> To: [email protected]
>> Message-ID: <[email protected]>
>> Content-Type: text/plain; charset=windows-1252; format=flowed
>>
>> This is a Resteasy Client -> JAX-RS 2.0 mismatch migration problem.
>>
>> Replace:
>>
>> response.getEntity()
>>
>> with:
>>
>> response.readEntity(String.class);
>>
>> replace String.class to whatever class you want to marshal to.
>> getEntity() returns null if you haven't unmarshalled anything with
>> readEntity().
>>
>>
>>
>> On 11/26/2013 2:59 PM, Gabriella Turek wrote:
>>> After upgrading from Resteasy 2.4 to 3.0.5, none of my client calls work
>>> anymore. The entity which I am expecting (as simple as a String) is
>>> always null. In debug mode I can see it being set in the Response object
>>> on the server side, but on the client side the entity in the Response is
>>> null.
>>> Here is an example call:
>>>
>>> The interface:
>>>
>>> | /**
>>> * @return all expired licenses
>>> */
>>> @GET
>>> @ClientResponseType(entityType= LicenseList.class)
>>> @Path("/expired")
>>> @Produces(MediaType.APPLICATION_XML)
>>> public Response getExpiredLicenses();|
>>>
>>> The implementation:
>>>
>>> | /**
>>> * @return all expired licenses
>>> */
>>> @Override
>>> public Response getExpiredLicenses() {
>>> try {
>>> LicenseList list= LicensesDBUtil.getExpiredLicenses();
>>> Response resp= Response.ok().entity(list).build();
>>> return resp;
>>> } catch (SQLException e) {
>>> LOG.error("Error getting expired licenses :" + e.getMessage());
>>> return
>>> Response.status(Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).type
>>> (MediaType.TEXT_PLAIN).build();
>>> }|
>>>
>>> The test call :
>>>
>>> | @Test
>>> public void testGetExpiredLicenses() throws Exception {
>>> ResteasyClientBuilder rsb= new ResteasyClientBuilder();
>>> ResteasyClient rsc= rsb.build();
>>> ResteasyWebTarget target= rsc.target(BASEURL);
>>> return target.proxy(RiskScapeLicenseService.class);
>>> Response response= client.getExpiredLicenses();
>>> assertTrue(HttpResponseCodes.SC_OK== response.getStatus());
>>> @SuppressWarnings("unchecked")
>>> JAXBElement<LicenseList> element= (JAXBElement<LicenseList>)
>>> response.getEntity();
>>> LicenseList list= element.getValue();
>>> assertEquals(4, list.getLicenses().size());
>>> for (License lic: list.getLicenses()) {
>>> assertTrue((new
>>> Date()).after(DateUtils.parseDate(lic.getValidTo(), new String[] {
>>> "yyyy-MM-dd" })));
>>> }
>>> }|
>>>
>>> My web.xml file:
>>>
>>> |<?xml version="1.0" encoding="UTF-8"?>
>>> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> xmlns="http://java.sun.com/xml/ns/javaee"
>>> xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
>>> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
>>> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
>>> <display-name>riskscapelic_rest</display-name>
>>> <listener>
>>> <listener-class>
>>> org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
>>> </listener-class>
>>> </listener>
>>> <servlet>
>>> <servlet-name>Resteasy</servlet-name>
>>>
>>> <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispa
>>> tcher</servlet-class>
>>> </servlet>
>>> <servlet-mapping>
>>> <servlet-name>Resteasy</servlet-name>
>>> <url-pattern>/*</url-pattern>
>>> </servlet-mapping>
>>> <context-param>
>>> <param-name>resteasy.scan</param-name>
>>> <param-value>true</param-value>
>>> </context-param>
>>> <context-param>
>>> <param-name>resteasy.servlet.mapping.prefix</param-name>
>>> <param-value>/</param-value>
>>> </context-param>
>>> </web-app>|
>>>
>>> The LicenseList class:
>>>
>>> |@XmlRootElement(name= "LicenseList")
>>> @XmlAccessorType(XmlAccessType.FIELD)
>>> @XmlType(name= "licenseList", propOrder= {
>>> "licenses"
>>> })
>>> public class LicenseList {
>>>
>>> @XmlElement(name= "Licenses", required= true)
>>> protected List<License> licenses;
>>>
>>> /**
>>> * Gets the value of the licenses property.
>>> *
>>> * <p>
>>> * This accessor method returns a reference to the live list,
>>> * not a snapshot. Therefore any modification you make to the
>>> * returned list will be present inside the JAXB object.
>>> * This is why there is not a <CODE>set</CODE> method for the
>>> licenses property.
>>> *
>>> * <p>
>>> * For example, to add a new item, do as follows:
>>> * <pre>
>>> * getLicenses().add(newItem);
>>> * </pre>
>>> *
>>> *
>>> * <p>
>>> * Objects of the following type(s) are allowed in the list
>>> * {@link License }
>>> *
>>> *
>>> */
>>> public List<License> getLicenses() {
>>> if (licenses== null) {
>>> licenses= new ArrayList<License>();
>>> }
>>> return this.licenses;
>>> }
>>>
>>> }|
>>>
>>> I am using JDK 1.7, Tomcat 7.0.47
>>> --
>>> Dr Gabriella Turek
>>> Sr. Software Engineer, Systems Development Team
>>> NIWA Auckland, New Zealand
>>> Tel: +64 9 3754645
>>> www.niwa.co.nz
>>> NIWA - Enhancing the benefit of New Zealand?s natural resources.
>>> --
>>> Please consider the environment before printing this email.
>>> NIWA is the trading name of the National Institute of Water &
>>> Atmospheric Research Ltd.
>>>
>>>
>>>
>>> -------------------------------------------------------------------------
>>> -----
>>> Rapidly troubleshoot problems before they affect your business. Most IT
>>> organizations don't have a clear picture of how application performance
>>> affects their revenue. With AppDynamics, you get 100% visibility into
>>> your
>>> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of
>>> AppDynamics Pro!
>>>
>>> http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clkt
>>> rk
>>>
>>>
>>>
>>> _______________________________________________
>>> Resteasy-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/resteasy-users
>>>
>>
>> --
>> Bill Burke
>> JBoss, a division of Red Hat
>> http://bill.burkecentral.com
>>
>>
>>
>> ------------------------------
>>
>> --------------------------------------------------------------------------
>> ----
>> Rapidly troubleshoot problems before they affect your business. Most IT
>> organizations don't have a clear picture of how application performance
>> affects their revenue. With AppDynamics, you get 100% visibility into
>> your
>> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics
>> Pro!
>> http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktr
>> k
>>
>> ------------------------------
>>
>> _______________________________________________
>> Resteasy-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/resteasy-users
>>
>>
>> End of Resteasy-users Digest, Vol 42, Issue 4
>> *********************************************
>
> --
> Please consider the environment before printing this email.
> NIWA is the trading name of the National Institute of Water & Atmospheric
> Research Ltd.
>
> ------------------------------------------------------------------------------
> Rapidly troubleshoot problems before they affect your business. Most IT
> organizations don't have a clear picture of how application performance
> affects their revenue. With AppDynamics, you get 100% visibility into your
> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
> http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
> _______________________________________________
> Resteasy-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/resteasy-users
>
--
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
_______________________________________________
Resteasy-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/resteasy-users