Couple thoughts:
1) Is ASM on the classpath? 2) What does the soap message look like if validation is turned off? Does it actually match the schema? 3) I notice you aren't using the WSDL at runtime. Thus, it ends up using a "generated" schema and not the "real" schema from the wsdl. You might want to actually point it at the correct wsdl. Dan On Tue October 27 2009 1:18:27 am Suneet Shah wrote: > Hello: > > I get the exception below when I call the add() operation on my service > with schema validation turned on. Its goes through fine, if the schema > validation is set to false. I suspect that something is wrong in my wsdl > that is causing this error to come up. However, I am at a loss as to > where the problem may be. I have attached the wsdl and my client code. > > Thanks for your help. > > ClientProxyFactoryBean factory = new JaxWsProxyFactoryBean(); > factory.setServiceClass(ConnectorService.class); > > > factory.setAddress("http://localhost:8080/idm-connector-ws/ExampleConnector > Service"); javax.xml.namespace.QName qname = > javax.xml.namespace.QName.valueOf("http://www.openiam.org/service/connector > "); factory.setEndpointName(qname); > ConnectorService client = (ConnectorService) factory.create(); > > > AddRequestType addReqType = new AddRequestType(); > PSOIdentifierType idType = new > PSOIdentifierType("test.user",null, "target"); > addReqType.setPsoID(idType); > addReqType.setRequestID("R4589"); > addReqType.setTargetID("100"); > > ExtensibleUser extUser = new ExtensibleUser(); > extUser.setName("Test User"); > extUser.getAttributes().add(new ExtensibleAttribute("cn","Test > User")); > extUser.getAttributes().add(new > ExtensibleAttribute("givenname","Test")); > extUser.getAttributes().add(new ExtensibleAttribute("sn","User")); > extUser.getAttributes().add(new > ExtensibleAttribute("description","Test User")); > extUser.getAttributes().add(new > ExtensibleAttribute("mail","test.u...@openiam.com")); > > > addReqType.getData().getAny().add(extUser); > > client.add(addReqType); > > ResponseType resp = client.add(addReqType); > > > javax.xml.ws.soap.SOAPFaultException: Unmarshalling Error: cvc-elt.1: > Cannot find the declaration of element 'arg0'. > at > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:141) > at $Proxy56.add(Unknown Source) > at org.openiam.srvc.UserMgrTest.testAdd(UserMgrTest.java:70) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at junit.framework.TestCase.runTest(TestCase.java:164) > at junit.framework.TestCase.runBare(TestCase.java:130) > at > org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.ja > va:76) at junit.framework.TestResult$1.protect(TestResult.java:110) > at junit.framework.TestResult.runProtected(TestResult.java:128) > at junit.framework.TestResult.run(TestResult.java:113) > at junit.framework.TestCase.run(TestCase.java:120) > at junit.framework.TestSuite.runTest(TestSuite.java:228) > at junit.framework.TestSuite.run(TestSuite.java:223) > at > org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:3 > 5) at > org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestRe > ference.java:45) at > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java: > 38) at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR > unner.java:460) at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR > unner.java:673) at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner > .java:386) at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunne > r.java:196) Caused by: org.apache.cxf.binding.soap.SoapFault: Unmarshalling > Error: cvc-elt.1: Cannot find the declaration of element 'arg0'. > at > org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalF > ault(Soap11FaultInInterceptor.java:75) at > org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMess > age(Soap11FaultInInterceptor.java:46) at > org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMess > age(Soap11FaultInInterceptor.java:35) at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai > n.java:236) at > org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(Ab > stractFaultChainInitiatorObserver.java:96) at > org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage > (CheckFaultInterceptor.java:69) at > org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage > (CheckFaultInterceptor.java:34) at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai > n.java:236) at > org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:641) at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRespons > eInternal(HTTPConduit.java:2134) at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRespons > e(HTTPConduit.java:2013) at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPCon > duit.java:1938) at > org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) > at > org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:626) at > org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInte > rceptor.handleMessage(MessageSenderInterceptor.java:62) at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai > n.java:236) at > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:469) at > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:299) at > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:251) at > org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:120) > -- Daniel Kulp dk...@apache.org http://www.dankulp.com/blog