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.