Exception in INOUT parameter
----------------------------

                 Key: CXF-1476
                 URL: https://issues.apache.org/jira/browse/CXF-1476
             Project: CXF
          Issue Type: Bug
    Affects Versions: 2.0.4
            Reporter: Giancarlo Valeri


I need to expose a service with CXF with an INOUT parameter. The INOUT 
parameter is two dimensial array of objects (of class NameAndValue_T). 

The interface exposed is: 

package foo; 

import javax.jws.WebParam; 
import javax.jws.WebParam.Mode; 


@javax.jws.WebService(name="ENDPOINT_NAME", 
                      
targetNamespace="NAME_SPACE")@javax.jws.soap.SOAPBinding(use=javax.jws.soap.SOAPBinding.Use.LITERAL,
 
                      
parameterStyle=javax.jws.soap.SOAPBinding.ParameterStyle.WRAPPED) 

public abstract interface TestInterface { 

    @javax.jws.WebMethod(operationName="bar") 
    abstract public boolean bar(@WebParam(name="how_many") int how_many, 
@WebParam(name="nameList", mode=Mode.INOUT)  
javax.xml.ws.Holder<foo.NameAndValue_T[][]> nameList); 

} 

During the Service creation the following Exception is raised: 

INFO: Creating Service {NAME_SPACE}TestInterfaceService from class 
foo.TestInterface 
Exception in thread "main" java.lang.ClassCastException: 
sun.reflect.generics.reflectiveObjects.GenericArrayTypeImpl cannot be cast to 
java.lang.Class 
        at 
org.apache.cxf.jaxws.support.JaxWsServiceConfiguration.getHolderClass(JaxWsServiceConfiguration.java:707)
 
        at 
org.apache.cxf.jaxws.support.JaxWsServiceConfiguration.getHolderType(JaxWsServiceConfiguration.java:697)
 
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.getHolderType(ReflectionServiceFactoryBean.java:1423)
 
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeParameter(ReflectionServiceFactoryBean.java:1325)
 
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createMessageParts(ReflectionServiceFactoryBean.java:1156)
 
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createOperation(ReflectionServiceFactoryBean.java:699)
 
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createInterface(ReflectionServiceFactoryBean.java:683)
 
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:305)
 
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:362)
 
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:156)
 
        at 
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:89)
 
        at 
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:74)
 
        at 
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:108) 
        at 
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:147)
 
        at foo.Server.<init>(Server.java:41) 
        at foo.Server.main(Server.java:46) 
        

In attachement there is a project to reproduce the problem. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to