You didn't define a typemapping for ArrayOf_xsd_string. Anne
On Tue, Aug 26, 2008 at 5:26 AM, O. Bigalk <[EMAIL PROTECTED]> wrote: > > Hi, > > I am developing a web service with a method that takes a complex type as > parameter. > The method takes three parameters the first is an String the second is an > array of String an the third is an array of FeatureCategoryTreePath which is > the complex type. Both parameter are nillable. When I call the method with > the second paremeter set to null all works fine > but when I call the method with a non null value I get the exception below. > Here is the SOAP request send to the service. > <soapenv:Envelope > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:q0="http://webservice.moses.prisma.de" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <soapenv:Body> > <q0:getResultListWithKeywordsAndFeatures> > <q0:identity>1234</q0:identity> > <q0:keywords> > <q0:item>S2</q0:item> > </q0:keywords> > <q0:features> > <q0:item> > <q0:idArray> > <q0:item>1</q0:item> > <q0:item>4</q0:item> > </q0:idArray> > <q0:nameArray xsi:nil="true"/> > <q0:toleranceArray xsi:nil="true"/> > <q0:valueArray> > <q0:item>wert</q0:item> > </q0:valueArray> > </q0:item> > </q0:features> > </q0:getResultListWithKeywordsAndFeatures> > </soapenv:Body></soapenv:Envelope> > > > Here the exception thrown. > > javax.ejb.EJBException: java.lang.IllegalArgumentException: Wrong target. > class de.prisma.moses.webfrontend.reference.RefObjectFinderBean for public > ava.util.List > de.prisma.moses.webfrontend.reference.RefObjectFinderBean.getResultListWithKeywordsAndFeatures(java.lang.String[],de.prisma.moses.ejb.session.FeatureCategoryPathQuery[]) > at > org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:69) > at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83) > at > org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:197) > at > org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) > at > org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) > at > org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) > at > org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:81) > at > org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) > at > org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78) > at > org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) > at > org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47) > at > org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) > at > org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) > at > org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) > at > org.jboss.ejb3.stateful.StatefulContainer.dynamicInvoke(StatefulContainer.java:297) > at > org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:59) > at > org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) > at > org.jboss.ejb3.stateful.StatefulRemoteProxy.invoke(StatefulRemoteProxy.java:133) > at $Proxy2437.getResultListWithKeywordsAndFeatures(Unknown Source) > at > de.prisma.moses.webservice.SimilarityRequest.getResultListWithKeywordsAndFeatures(SimilarityRequest.java:565) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) > at > org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) > at > org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) > at > org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) > at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) > at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) > at > org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) > at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) > at > org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > at > org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAsPrivileged(Subject.java:517) > at > org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275) > at > org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:245) > at > org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:50) > at > org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:156) > at java.security.AccessController.doPrivileged(Native Method) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:152) > at > org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAsPrivileged(Subject.java:517) > at > org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275) > at > org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:217) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:197) > at > org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:50) > at > org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:156) > at java.security.AccessController.doPrivileged(Native Method) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:152) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) > at > org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) > at > org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) > at > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) > at > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) > at > org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.lang.IllegalArgumentException: Wrong target. class > de.prisma.moses.webfrontend.reference.RefObjectFinderBean for public > java.util.List > de.prisma.moses.webfrontend.reference.RefObjectFinderBean.getResultListWithKeywordsAndFeatures(java.lang.String[],de.prisma.moses.ejb.session.Featur > CategoryPathQuery[]) > at > org.jboss.aop.joinpoint.MethodInvocation.handleErrors(MethodInvocation.java:141) > at > org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:116) > at > org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) > at > org.jboss.seam.intercept.EJBInvocationContext.proceed(EJBInvocationContext.java:37) > at > org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57) > at > org.jboss.seam.interceptors.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:47) > at > org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) > at > org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27) > at > org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) > at > org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:113) > at > org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:53) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118) > at > org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) > at > org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) > at > org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPersistenceContextPropagationInterceptor.java:71) > at > org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) > at > org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) > at > org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) > at > org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) > at > org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) > at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79) > ... 76 more > > > Here is an excerpt from the WSDL file. > <schema> > ... > <element name="getResultListWithKeywordsAndFeatures"> > <complexType> > <sequence> > <element name="identity" type="xsd:string"/> > <element name="keywords" nillable="true" > type="impl:ArrayOf_xsd_string"/> > <element name="features" nillable="true" > type="impl:ArrayOfFeatureCategoryTreePath"/> > </sequence> > </complexType> > </element> > <element name="getResultListWithKeywordsAndFeaturesResponse"> > <complexType> > <sequence> > <element name="getResultListWithKeywordsAndFeaturesReturn" > type="impl:ResultList"/> > </sequence> > </complexType> > </element> > <complexType name="ArrayOfFeatureCategoryTreePath"> > <sequence> > <element maxOccurs="unbounded" minOccurs="0" name="item" > type="impl:FeatureCategoryTreePath"/> > </sequence> > </complexType> > <complexType name="FeatureCategoryTreePath"> > <sequence> > <element name="searchValueType" nillable="true" type="xsd:string"/> > <element name="idArray" nillable="true" type="impl:ArrayOf_xsd_fc_id"/> > <element name="nameArray" nillable="true" > type="impl:ArrayOf_xsd_string"/> > <element name="toleranceArray" nillable="true" > type="impl:ArrayOf_xsd_string"/> > <element name="valueArray" nillable="true" > type="impl:ArrayOf_xsd_string"/> > </sequence> > </complexType> > <complexType name="ArrayOf_xsd_string"> > <sequence> > <element maxOccurs="unbounded" minOccurs="0" name="item" > type="xsd:string"/> > </sequence> > </complexType> > <complexType name="ArrayOf_xsd_fc_id"> > <sequence> > <element maxOccurs="unbounded" minOccurs="2" name="item" > type="xsd:int"/> > </sequence> > </complexType> > ... > </schema> > ... > > <wsdl:message name="getResultListWithKeywordsAndFeaturesRequest"> > > <wsdl:part element="impl:getResultListWithKeywordsAndFeatures" > name="parameters"/> > > </wsdl:message> > > <wsdl:message name="getResultListWithKeywordsAndFeaturesResponse"> > > <wsdl:part element="impl:getResultListWithKeywordsAndFeaturesResponse" > name="parameters"/> > > </wsdl:message> > ... > > <wsdl:portType name="SimilarityRequest"> > <wsdl:operation name="getResultListWithKeywordsAndFeatures"> > > <wsdl:input > message="impl:getResultListWithKeywordsAndFeaturesRequest" > name="getResultListWithKeywordsAndFeaturesRequest"/> > > <wsdl:output > message="impl:getResultListWithKeywordsAndFeaturesResponse" > name="getResultListWithKeywordsAndFeaturesResponse"/> > > </wsdl:operation> > ... > </wsdl:portType> > ... > <wsdl:binding name="SimilarityRequestSoapBinding" > type="impl:SimilarityRequest"> > <wsdlsoap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http"/> > <wsdl:operation name="getResultListWithKeywordsAndFeatures"> > > <wsdlsoap:operation soapAction=""/> > > <wsdl:input name="getResultListWithKeywordsAndFeaturesRequest"> > > <wsdlsoap:body use="literal"/> > > </wsdl:input> > > <wsdl:output name="getResultListWithKeywordsAndFeaturesResponse"> > > <wsdlsoap:body use="literal"/> > > </wsdl:output> > > </wsdl:operation> > ... > </wsdl:binding> > > Here an excerpt from my server-config.wsdd > > <service name="SimilarityRequest" provider="java:RPC" > style="wrapped" use="literal"> > ... > <operation xmlns:operNS="http://webservice.moses.prisma.de" > xmlns:retNS="http://webservice.moses.prisma.de" > xmlns:rtns="http://webservice.moses.prisma.de" > name="getResultListWithKeywordsAndFeatures" > qname="operNS:getResultListWithKeywordsAndFeatures" > returnQName="retNS:getResultListWithKeywordsAndFeaturesReturn" > returnType="rtns:ResultList" soapAction=""> > <parameter xmlns:pns="http://webservice.moses.prisma.de" > xmlns:tns="http://www.w3.org/2001/XMLSchema" > qname="pns:identity" > type="tns:string" /> > <parameter xmlns:pns="http://webservice.moses.prisma.de" > xmlns:tns="http://session.ejb.moses.prisma.de" > qname="pns:keywords" > type="tns:string" /> > <parameter xmlns:pns="http://webservice.moses.prisma.de" > xmlns:tns="http://session.ejb.moses.prisma.de" > qname="pns:features" > type="tns:FeatureCategoryTreePath" /> > </operation> > ... > <parameter name="allowedMethods" value="... > getResultListWithKeywordsAndFeatures ..." /> > ... > > Here an excerpt from my deploy.wsdd > > <service name="SimilarityRequest" provider="java:RPC" style="wrapped" > use="literal"> > <parameter name="wsdlTargetNamespace" > value="http://webservice.moses.prisma.de"/> > <parameter name="wsdlServiceElement" > value="SimilarityRequestService"/> > <parameter name="schemaQualified" > value="http://webservice.moses.prisma.de"/> > <parameter name="wsdlServicePort" value="SimilarityRequest"/> > <parameter name="className" > value="de.prisma.moses.webservice.SimilarityRequest"/> > <parameter name="wsdlPortType" value="SimilarityRequest"/> > <parameter name="typeMappingVersion" value="1.2"/> > > <operation xmlns:operNS="http://webservice.moses.prisma.de" > xmlns:retNS="http://webservice.moses.prisma.de" > xmlns:rtns="http://webservice.moses.prisma.de" > name="getResultListWithKeywordsAndFeatures" > qname="operNS:getResultListWithKeywordsAndFeatures" > returnQName="retNS:getResultListWithKeywordsAndFeaturesReturn" > returnType="rtns:ResultList" soapAction=""> > > <parameter xmlns:pns="http://webservice.moses.prisma.de" > xmlns:tns="http://www.w3.org/2001/XMLSchema" > qname="pns:identity" type="tns:string" /> > > <parameter xmlns:pns="http://webservice.moses.prisma.de" > xmlns:tns="http://www.w3.org/2001/XMLSchema" > qname="pns:keywords" type="tns:string" /> > > <parameter xmlns:pns="http://webservice.moses.prisma.de" > xmlns:tns="http://webservice.moses.prisma.de" > qname="pns:features" type="tns:FeatureCategoryTreePath" /> > </operation> > <parameter name="allowedMethods" value="... > getResultListWithKeywordsAndFeatures ..."/> > > <arrayMapping xmlns:ns="http://webservice.moses.prisma.de" > xmlns:cmp-ns="http://webservice.moses.prisma.de" > qname="ns:ArrayOfFeatureCategoryTreePath" > type="java:de.prisma.moses.webservice.FeatureCategoryTreePath[]" > innerType="cmp-ns:FeatureCategoryTreePath" encodingStyle="" /> > > <typeMapping xmlns:ns="http://webservice.moses.prisma.de" > qname="ns:FeatureCategoryTreePath" > type="java:de.prisma.moses.webservice.FeatureCategoryTreePath" > serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" > deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" > encodingStyle="" /> > > Thanks in advance for any help. > > -- > View this message in context: > http://www.nabble.com/java.lang.IllegalArgumentException%3A-Wrong-target.-class-...-tp19158560p19158560.html > Sent from the Axis - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]