Hi
On 09/05/12 15:11, Pavel Khodchenkov wrote:
After upgrading spring to 3.1.1.RELEASE, the issue has gone :)

Thanks for the confirmation. I guess in 3.1.0.RELEASE, Spring auto-converts the single values to (singleton) lists of values which would break a lot of code, as in this example.

Cheers, Sergey

-----Original Message-----
From: Pavel Khodchenkov
Sent: Wednesday, May 09, 2012 4:01 PM
To: [email protected]
Subject: RE: Spring : TypeMismatchException in jaxrs:client after upgrading to 
2.6.0

Hi,
Cxf-2.6.0 uses spring 3.0.7.RELEASE  and org.apache.cxf.jaxrs.spring. 
JAXRSClientFactoryBeanTest works fine.
However, it also fails if spring version 3.1.0.RELEASE is used:

org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'setHeaderClient.proxyFactory': Error setting property values; nested 
exception is org.springframework.beans.PropertyBatchUpdateException; nested 
PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.TypeMismatchException: 
Failed to convert property value of type 'java.util.LinkedHashMap' to required 
type 'java.util.Map' for property 'headers'; nested exception is 
java.lang.ClassCastException: java.util.ArrayList cannot be cast to 
java.lang.String
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1396)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
        at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
        at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
        at 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
        at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
        at 
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
        at 
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
        at 
org.apache.cxf.jaxrs.spring.JAXRSClientFactoryBeanTest.testClients(JAXRSClientFactoryBeanTest.java:41)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
        at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:76)
        at 
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:182)
        at 
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:62)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: org.springframework.beans.PropertyBatchUpdateException; nested 
PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.TypeMismatchException: 
Failed to convert property value of type 'java.util.LinkedHashMap' to required 
type 'java.util.Map' for property 'headers'; nested exception is 
java.lang.ClassCastException: java.util.ArrayList cannot be cast to 
java.lang.String
        at 
org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:102)
        at 
org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:58)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
        ... 40 more

-----Original Message-----
From: Pavel Khodchenkov
Sent: Wednesday, May 09, 2012 12:19 AM
To:<[email protected]>
Cc: [email protected]
Subject: Re: Spring : TypeMismatchException in jaxrs:client after upgrading to 
2.6.0

Hi,
No,it's not an osgi env. I will checkout cxf 2.6. Sources and compare my config 
with unit cxf unit test

Sent from my iPad

On 08.05.2012, at 14:51, "Sergey Beryozkin"<[email protected]>  wrote:

Hi
On 07/05/12 14:45, Pavel Khodchenkov wrote:
Hi folks,
I am having the following exception in Spring after upgrading to cxf 2.6.0 from 
2.5.2:

Caused by: org.springframework.beans.factory.BeanCreationException: Error 
creating bean with name 'transactionServiceRestPort.proxyFactory': Error 
setting property values; nested exception is 
org.springframework.beans.PropertyBatchUpdateException; nested 
PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.TypeMismatchException: 
Failed to convert property value of type 'java.util.LinkedHashMap' to required 
type 'java.util.Map' for property 'headers'; nested exception is 
java.lang.ClassCastException: java.util.ArrayList cannot be cast to 
java.lang.String

Code snippet:

     <jaxrs:client id="transactionServiceRestPort"
                   
address="http://localhost:9090/services/TransactionRestService";
                   
serviceClass="com.kitd.services.transaction.api.TransactionService"
                   inheritHeaders="true">
         <jaxrs:headers>
             <entry key="Content-Type" value="application/xml"/>
             <entry key="Accept" value="application/xml"/>
         </jaxrs:headers>
     </jaxrs:client>

What is wrong with headers?

Does it happen in the OSGI environment ? Looks like a class loader issue...We 
have a simple jaxrs client loaded from Spring where the headers are also 
specified. It is difficult to figure out where the problem is without a test 
case.

Cheers, Sergey

This e-mail and any attachments are confidential and intended solely for the 
addressee and may also be privileged or exempt from disclosure under applicable 
law. If you are not the addressee, or have received this e-mail in error, 
please notify the sender immediately, delete it from your system and do not 
copy, disclose or otherwise act upon any part of this e-mail or its 
attachments. Internet communications are not guaranteed to be secure or 
virus-free. KIT digital Inc. and its affiliates do not accept responsibility 
for any loss arising from unauthorised access to, or interference with, any 
Internet communications by any third party, or from the transmission of any 
viruses.



--
Sergey Beryozkin

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

Blog: http://sberyozkin.blogspot.com


--
Sergey Beryozkin

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

Blog: http://sberyozkin.blogspot.com

Reply via email to