JIRA

  • Log In Access more options
    • Online Help
    • GreenHopper Help
    • Agile Answers
    • Use Agile By Default
    • Keyboard Shortcuts
    • About JIRA
    • JIRA Credits
    • What’s New
  • Dashboards Access more options (Alt+d)
  • Projects Access more options (Alt+p)
  • Issues Access more options (Alt+i)
  • Agile Access more options (Alt+g)
  • Create Issue
  • Mule
  • MULE-4754

CXF - can't use Collections when autoproxying via Spring

  • Agile Board
  • More Actions
  • Views
    • XML
    • Word
    • Printable

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Incomplete
  • Affects Version/s: 2.2.1
  • Fix Version/s: Bug Backlog
  • Component/s: Modules: CXF
  • Labels:
    • 30ce_review
  • Environment:

    JDK 1.5

  • User impact:
    High
  • Log Output:
    Hide
    16:09:57 ERROR [MuleServer] []
    ********************************************************************************
    Message : Initialisation Failure: Error initializing parameters for operation {http://services.qid.pulsen.com/}searchPersonQIDDatabase: Cannot create mapping for java.util.ArrayList, unspecified component type for method searchPersonQIDDatabase parameter -1
    Type : org.mule.api.lifecycle.InitialisationException
    Code : MULE_ERROR-72085
    JavaDoc : http://www.mulesource.org/docs/site/current2/apidocs/org/mule/api/lifecycle/InitialisationException.html
    Object : CxfMessageReceiver{this=ed7f5c, receiverKey=https://localhost:63082, endpoint=https://localhost:63082}
    ********************************************************************************
    Exception stack is:
    1. Error initializing parameters for operation {http://services.qid.pulsen.com/}searchPersonQIDDatabase: Cannot create mapping for java.util.ArrayList, unspecified component type for method searchPersonQIDDatabase parameter -1 (org.apache.cxf.aegis.DatabindingException)
      org.apache.cxf.aegis.type.DefaultTypeCreator:59 (null)
    2. Initialisation Failure: Error initializing parameters for operation {http://services.qid.pulsen.com/}searchPersonQIDDatabase: Cannot create mapping for java.util.ArrayList, unspecified component type for method searchPersonQIDDatabase parameter -1 (org.mule.api.lifecycle.InitialisationException)
      org.mule.transport.cxf.CxfMessageReceiver:287 (http://www.mulesource.org/docs/site/current2/apidocs/org/mule/api/lifecycle/InitialisationException.html)
    ********************************************************************************
    Root Exception stack trace:
    org.apache.cxf.aegis.DatabindingException: Error initializing parameters for operation {http://services.qid.pulsen.com/}searchPersonQIDDatabase: Cannot create mapping for java.util.ArrayList, unspecified component type for method searchPersonQIDDatabase parameter -1
    at org.apache.cxf.aegis.type.DefaultTypeCreator.createCollectionType(DefaultTypeCreator.java:59)
    at org.apache.cxf.aegis.type.java5.Java5TypeCreator.createCollectionType(Java5TypeCreator.java:117)
    at org.apache.cxf.aegis.type.XMLTypeCreator.createCollectionType(XMLTypeCreator.java:241)
    at org.apache.cxf.aegis.type.AbstractTypeCreator.createTypeForClass(AbstractTypeCreator.java:115)
    at org.apache.cxf.aegis.databinding.AegisDatabinding.getParameterType(AegisDatabinding.java:594)
    at org.apache.cxf.aegis.databinding.AegisDatabinding.initializeMessage(AegisDatabinding.java:376)
    at org.apache.cxf.aegis.databinding.AegisDatabinding.initializeOperation(AegisDatabinding.java:340)
    at org.apache.cxf.aegis.databinding.AegisDatabinding.initialize(AegisDatabinding.java:304)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:354)
    at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:514)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:405)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:188)
    at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:164)
    at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:100)
    at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:116)
    at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:168)
    at org.mule.transport.cxf.CxfMessageReceiver.doInitialise(CxfMessageReceiver.java:273)
    at org.mule.transport.AbstractMessageReceiver.initialise(AbstractMessageReceiver.java:120)
    at org.mule.transport.AbstractConnector.registerListener(AbstractConnector.java:1127)
    at org.mule.service.AbstractService.registerListeners(AbstractService.java:593)
    at org.mule.service.AbstractService.start(AbstractService.java:316)
    at org.mule.service.AbstractService.start(AbstractService.java:293)
    at sun.reflect.GeneratedMethodAccessor27.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.mule.lifecycle.DefaultLifecyclePhase.applyLifecycle(DefaultLifecyclePhase.java:273)
    at org.mule.lifecycle.DefaultLifecyclePhase.applyLifecycle(DefaultLifecyclePhase.java:129)
    at org.mule.lifecycle.GenericLifecycleManager.firePhase(GenericLifecycleManager.java:84)
    at org.mule.DefaultMuleContext.start(DefaultMuleContext.java:170)
    at org.mule.MuleServer.run(MuleServer.java:259)
    at org.mule.MuleServer.start(MuleServer.java:244)
    at org.mule.MuleServer.main(MuleServer.java:121)

    ********************************************************************************
    Show
    16:09:57 ERROR [MuleServer] [] ******************************************************************************** Message : Initialisation Failure: Error initializing parameters for operation {http://services.qid.pulsen.com/}searchPersonQIDDatabase: Cannot create mapping for java.util.ArrayList, unspecified component type for method searchPersonQIDDatabase parameter -1 Type : org.mule.api.lifecycle.InitialisationException Code : MULE_ERROR-72085 JavaDoc : http://www.mulesource.org/docs/site/current2/apidocs/org/mule/api/lifecycle/InitialisationException.html Object : CxfMessageReceiver{this=ed7f5c, receiverKey=https://localhost:63082, endpoint=https://localhost:63082} ******************************************************************************** Exception stack is: 1. Error initializing parameters for operation {http://services.qid.pulsen.com/}searchPersonQIDDatabase: Cannot create mapping for java.util.ArrayList, unspecified component type for method searchPersonQIDDatabase parameter -1 (org.apache.cxf.aegis.DatabindingException)   org.apache.cxf.aegis.type.DefaultTypeCreator:59 (null) 2. Initialisation Failure: Error initializing parameters for operation {http://services.qid.pulsen.com/}searchPersonQIDDatabase: Cannot create mapping for java.util.ArrayList, unspecified component type for method searchPersonQIDDatabase parameter -1 (org.mule.api.lifecycle.InitialisationException)   org.mule.transport.cxf.CxfMessageReceiver:287 (http://www.mulesource.org/docs/site/current2/apidocs/org/mule/api/lifecycle/InitialisationException.html) ******************************************************************************** Root Exception stack trace: org.apache.cxf.aegis.DatabindingException: Error initializing parameters for operation {http://services.qid.pulsen.com/}searchPersonQIDDatabase: Cannot create mapping for java.util.ArrayList, unspecified component type for method searchPersonQIDDatabase parameter -1 at org.apache.cxf.aegis.type.DefaultTypeCreator.createCollectionType(DefaultTypeCreator.java:59) at org.apache.cxf.aegis.type.java5.Java5TypeCreator.createCollectionType(Java5TypeCreator.java:117) at org.apache.cxf.aegis.type.XMLTypeCreator.createCollectionType(XMLTypeCreator.java:241) at org.apache.cxf.aegis.type.AbstractTypeCreator.createTypeForClass(AbstractTypeCreator.java:115) at org.apache.cxf.aegis.databinding.AegisDatabinding.getParameterType(AegisDatabinding.java:594) at org.apache.cxf.aegis.databinding.AegisDatabinding.initializeMessage(AegisDatabinding.java:376) at org.apache.cxf.aegis.databinding.AegisDatabinding.initializeOperation(AegisDatabinding.java:340) at org.apache.cxf.aegis.databinding.AegisDatabinding.initialize(AegisDatabinding.java:304) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:354) at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:514) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:405) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:188) at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:164) at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:100) at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:116) at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:168) at org.mule.transport.cxf.CxfMessageReceiver.doInitialise(CxfMessageReceiver.java:273) at org.mule.transport.AbstractMessageReceiver.initialise(AbstractMessageReceiver.java:120) at org.mule.transport.AbstractConnector.registerListener(AbstractConnector.java:1127) at org.mule.service.AbstractService.registerListeners(AbstractService.java:593) at org.mule.service.AbstractService.start(AbstractService.java:316) at org.mule.service.AbstractService.start(AbstractService.java:293) at sun.reflect.GeneratedMethodAccessor27.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.mule.lifecycle.DefaultLifecyclePhase.applyLifecycle(DefaultLifecyclePhase.java:273) at org.mule.lifecycle.DefaultLifecyclePhase.applyLifecycle(DefaultLifecyclePhase.java:129) at org.mule.lifecycle.GenericLifecycleManager.firePhase(GenericLifecycleManager.java:84) at org.mule.DefaultMuleContext.start(DefaultMuleContext.java:170) at org.mule.MuleServer.run(MuleServer.java:259) at org.mule.MuleServer.start(MuleServer.java:244) at org.mule.MuleServer.main(MuleServer.java:121) ********************************************************************************
  • Similar Issues:
    None

Description

I've been using CXF for a webservice that is returning an ArrayList.
When I turned on component authorization to control access to some methods it all stopped working.
From what I can tell the aegis databinding gets the "proxy class" and that doesn´t contain any generics.
I guess one would need to be able to specify which class that the databinding should use.
My class do include generic information ArrayList<TreeMap<String,Object>> but that is gone when using BeanNameAutoProxyCreator.

I don't think I need to attach any config but adding below to my config makes it break:

<bean id="searchComponentSecurity" class="org.springframework.security.intercept.method.aopalliance.MethodSecurityInterceptor">
<property name="authenticationManager" ref="authenticationManager"/>
<property name="accessDecisionManager" ref="accessDecisionManager"/>
<property name="objectDefinitionSource">
<value>
com.pulsen.qid.services.SearchServiceImpl.searchPersonQIDDatabase=ROLE_READERS
com.pulsen.qid.services.SearchServiceImpl.searchPersonNavet=ROLE_WRITERS
</value>
</property>
</bean>
<bean id="accessDecisionManager" class='org.springframework.security.vote.AffirmativeBased'>
<property name="decisionVoters">
<list>
<ref bean="roleVoter"/>
</list>
</property>
</bean>
<bean id="autoProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="interceptorNames">
<list>
<value>searchComponentSecurity</value>
</list>
</property>
<property name="beanNames">
<list>
<value>searchServiceComponent</value>
</list>
</property>
<property name='proxyTargetClass' value="true"/>
</bean>
<bean id="roleVoter" class="org.springframework.security.vote.RoleVoter"/>

Any ideas?

/Tomas Blohm

Activity

Ascending order - Click to sort in descending order
  • All
  • Comments
  • Work Log
  • History
  • Activity
  • Transitions
  • Commits
  • Source
  • Builds
Hide
Permalink
Mateo Almenta Reca added a comment - 09/Aug/10 01:25 PM

Is this still an issue in 3.0?

Show
Mateo Almenta Reca added a comment - 09/Aug/10 01:25 PM Is this still an issue in 3.0?
Hide
Permalink
Evangelina Martinez Ruiz Moreno added a comment - 26/Jun/12 04:43 PM

Hi Tomas,

I'm not really sure I understand the problem here. Is this still an issue in Mule 3?

Thanks,
Eva

Show
Evangelina Martinez Ruiz Moreno added a comment - 26/Jun/12 04:43 PM Hi Tomas, I'm not really sure I understand the problem here. Is this still an issue in Mule 3? Thanks, Eva
Hide
Permalink
Evangelina Martinez Ruiz Moreno added a comment - 06/Jul/12 05:33 PM

Please reopen if needed, right now the issue is considered incomplete.

Show
Evangelina Martinez Ruiz Moreno added a comment - 06/Jul/12 05:33 PM Please reopen if needed, right now the issue is considered incomplete.

People

  • Assignee:
    Evangelina Martinez Ruiz Moreno
    Reporter:
    Tomas Blohm
Vote (0)
Watch (1)

Dates

  • Created:
    24/Feb/10 09:30 AM
    Updated:
    06/Jul/12 05:33 PM
    Resolved:
    06/Jul/12 05:33 PM

Agile

  • View on Board
  • Atlassian JIRA (v5.0.7#734-sha1:8ad78a6)
  • Report a problem
  • Powered by a free Atlassian JIRA open source license for MuleForge. Try JIRA - bug tracking software for your team.