|
View:
New views
5 Messages
—
Rating Filter:
Alert me
|
|
|
Marshalling Error when Schema Validation is OnHello:
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/ExampleConnectorService"); 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.user@...")); 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.java: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:35) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.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.unmarshalFault(Soap11FaultInInterceptor.java:75) at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:46) at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236) at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.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(PhaseInterceptorChain.java:236) at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:641) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2134) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2013) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.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$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.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) <?xml version='1.0' encoding='UTF-8'?><wsdl:definitions name="ExampleConnectorService" targetNamespace="http://www.openiam.org/service/connector" xmlns:ns1="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.openiam.org/service/connector" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:types> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.openiam.org/service/connector" xmlns:tns="http://www.openiam.org/service/connector" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="addRequest" nillable="true" type="tns:AddRequestType" /> <xs:element name="addResponse" nillable="true" type="tns:AddResponseType" /> <xs:element name="deleteRequest" nillable="true" type="tns:DeleteRequestType" /> <xs:element name="deleteResponse" nillable="true" type="tns:ResponseType" /> <xs:element name="expirePasswordRequest" nillable="true" type="tns:ExpirePasswordRequestType" /> <xs:element name="expirePasswordResponse" nillable="true" type="tns:ResponseType" /> <xs:element name="extensibleUser" type="tns:ExtensibleUser" /> <xs:element name="listTargetsRequest" nillable="true" type="tns:ListTargetsRequestType" /> <xs:element name="listTargetsResponse" nillable="true" type="tns:ListTargetsResponseType" /> <xs:element name="lookupRequest" nillable="true" type="tns:LookupRequestType" /> <xs:element name="lookupResponse" nillable="true" type="tns:LookupResponseType" /> <xs:element name="modifyRequest" nillable="true" type="tns:ModifyRequestType" /> <xs:element name="modifyResponse" nillable="true" type="tns:ModifyResponseType" /> <xs:element name="resetPasswordRequest" nillable="true" type="tns:ResetPasswordRequestType" /> <xs:element name="resetPasswordResponse" nillable="true" type="tns:ResetPasswordResponseType" /> <xs:element name="select" nillable="true" type="tns:SelectionType" /> <xs:element name="setPasswordRequest" nillable="true" type="tns:SetPasswordRequestType" /> <xs:element name="setPasswordResponse" nillable="true" type="tns:ResponseType" /> <xs:element name="validatePasswordRequest" nillable="true" type="tns:ValidatePasswordRequestType" /> <xs:element name="validatePasswordResponse" nillable="true" type="tns:ValidatePasswordResponseType" /> <xs:complexType name="ExtensibleType"> <xs:sequence> <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:complexType> <xs:complexType name="SelectionType"> <xs:complexContent> <xs:extension base="tns:QueryClauseType"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="namespacePrefixMap" nillable="true" type="tns:NamespacePrefixMappingType" /> </xs:sequence> <xs:attribute name="path" type="xs:string" use="required" /> <xs:attribute name="namespaceURI" type="xs:string" use="required" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="QueryClauseType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="NamespacePrefixMappingType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence /> <xs:attribute name="prefix" type="xs:string" use="required" /> <xs:attribute name="namespace" type="xs:string" use="required" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="AddRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence> <xs:element minOccurs="0" name="psoID" type="tns:PSOIdentifierType" /> <xs:element minOccurs="0" name="containerID" type="tns:PSOIdentifierType" /> <xs:element name="data" type="tns:ExtensibleType" /> <xs:element maxOccurs="unbounded" minOccurs="0" name="capabilityData" nillable="true" type="tns:CapabilityDataType" /> </xs:sequence> <xs:attribute name="targetID" type="xs:string" /> <xs:attribute name="returnData" type="tns:ReturnDataType" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="RequestType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence /> <xs:attribute name="requestID" type="xs:ID" /> <xs:attribute name="executionMode" type="tns:ExecutionModeType" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="PSOIdentifierType"> <xs:complexContent> <xs:extension base="tns:IdentifierType"> <xs:sequence> <xs:element minOccurs="0" name="containerID" type="tns:PSOIdentifierType" /> </xs:sequence> <xs:attribute name="targetID" type="xs:string" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="IdentifierType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence /> <xs:attribute name="ID" type="xs:string" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="CapabilityDataType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence /> <xs:attribute name="mustUnderstand" type="xs:boolean" /> <xs:attribute name="capabilityURI" type="xs:anyURI" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="LookupRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence> <xs:element name="psoID" type="tns:PSOIdentifierType" /> </xs:sequence> <xs:attribute name="returnData" type="tns:ReturnDataType" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ListTargetsRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence /> <xs:attribute name="profile" type="xs:anyURI" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="DeleteRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence> <xs:element name="psoID" type="tns:PSOIdentifierType" /> </xs:sequence> <xs:attribute name="recursive" type="xs:boolean" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ModifyRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence> <xs:element name="psoID" type="tns:PSOIdentifierType" /> <xs:element maxOccurs="unbounded" name="modification" type="tns:ModificationType" /> </xs:sequence> <xs:attribute name="returnData" type="tns:ReturnDataType" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ModificationType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence> <xs:element minOccurs="0" name="component" type="tns:SelectionType" /> <xs:element minOccurs="0" name="data" type="tns:ExtensibleType" /> <xs:element maxOccurs="unbounded" minOccurs="0" name="capabilityData" nillable="true" type="tns:CapabilityDataType" /> </xs:sequence> <xs:attribute name="modificationMode" type="tns:ModificationModeType" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="CapabilityType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="appliesTo" nillable="true" type="tns:SchemaEntityRefType" /> </xs:sequence> <xs:attribute name="namespaceURI" type="xs:anyURI" /> <xs:attribute name="location" type="xs:anyURI" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="SchemaEntityRefType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence /> <xs:attribute name="targetID" type="xs:string" /> <xs:attribute name="entityName" type="xs:string" /> <xs:attribute name="isContainer" type="xs:boolean" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ModifyResponseType"> <xs:complexContent> <xs:extension base="tns:ResponseType"> <xs:sequence> <xs:element minOccurs="0" name="pso" type="tns:PSOType" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ResponseType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="errorMessage" nillable="true" type="xs:string" /> </xs:sequence> <xs:attribute name="status" type="tns:StatusCodeType" use="required" /> <xs:attribute name="requestID" type="xs:ID" /> <xs:attribute name="error" type="tns:ErrorCode" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="PSOType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence> <xs:element name="psoID" type="tns:PSOIdentifierType" /> <xs:element minOccurs="0" name="data" type="tns:ExtensibleType" /> <xs:element maxOccurs="unbounded" minOccurs="0" name="capabilityData" nillable="true" type="tns:CapabilityDataType" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="AddResponseType"> <xs:complexContent> <xs:extension base="tns:ResponseType"> <xs:sequence> <xs:element minOccurs="0" name="pso" type="tns:PSOType" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ListTargetsResponseType"> <xs:complexContent> <xs:extension base="tns:ResponseType"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="target" nillable="true" type="tns:TargetType" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="TargetType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence> <xs:element maxOccurs="unbounded" name="schema" type="tns:SchemaType" /> <xs:element minOccurs="0" name="capabilities" type="tns:CapabilitiesListType" /> </xs:sequence> <xs:attribute name="targetID" type="xs:string" /> <xs:attribute name="profile" type="xs:anyURI" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="SchemaType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="supportedSchemaEntity" nillable="true" type="tns:SchemaEntityRefType" /> </xs:sequence> <xs:attribute name="ref" type="xs:anyURI" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="CapabilitiesListType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="capability" nillable="true" type="tns:CapabilityType" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="LookupResponseType"> <xs:complexContent> <xs:extension base="tns:ResponseType"> <xs:sequence> <xs:element minOccurs="0" name="pso" type="tns:PSOType" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ExtensibleUser"> <xs:complexContent> <xs:extension base="tns:ExtensibleObject"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="address" nillable="true" type="tns:ExtensibleObject" /> <xs:element maxOccurs="unbounded" minOccurs="0" name="phone" nillable="true" type="tns:ExtensibleObject" /> <xs:element maxOccurs="unbounded" minOccurs="0" name="email" nillable="true" type="tns:ExtensibleObject" /> <xs:element maxOccurs="unbounded" minOccurs="0" name="group" nillable="true" type="tns:ExtensibleGroup" /> <xs:element maxOccurs="unbounded" minOccurs="0" name="role" nillable="true" type="tns:ExtensibleRole" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ExtensibleObject"> <xs:sequence> <xs:element minOccurs="0" name="objectId" type="xs:string" /> <xs:element minOccurs="0" name="name" type="xs:string" /> <xs:element name="operation" type="xs:int" /> <xs:element maxOccurs="unbounded" minOccurs="0" name="attributes" nillable="true" type="tns:ExtensibleAttribute" /> </xs:sequence> </xs:complexType> <xs:complexType name="ExtensibleAttribute"> <xs:sequence> <xs:element minOccurs="0" name="name" type="xs:string" /> <xs:element minOccurs="0" name="value" type="xs:string" /> <xs:element name="operation" type="xs:int" /> </xs:sequence> </xs:complexType> <xs:complexType name="ExtensibleGroup"> <xs:complexContent> <xs:extension base="tns:ExtensibleObject"> <xs:sequence /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ExtensibleRole"> <xs:complexContent> <xs:extension base="tns:ExtensibleObject"> <xs:sequence /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ExpirePasswordRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence> <xs:element name="psoID" type="tns:PSOIdentifierType" /> </xs:sequence> <xs:attribute name="remainingLogins" type="xs:int" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ValidatePasswordRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence> <xs:element name="psoID" type="tns:PSOIdentifierType" /> <xs:element name="password" type="xs:string" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ValidatePasswordResponseType"> <xs:complexContent> <xs:extension base="tns:ResponseType"> <xs:sequence /> <xs:attribute name="valid" type="xs:boolean" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="SetPasswordRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence> <xs:element name="psoID" type="tns:PSOIdentifierType" /> <xs:element name="password" type="xs:string" /> <xs:element minOccurs="0" name="currentPassword" type="xs:string" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ResetPasswordRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence> <xs:element name="psoID" type="tns:PSOIdentifierType" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ResetPasswordResponseType"> <xs:complexContent> <xs:extension base="tns:ResponseType"> <xs:sequence> <xs:element minOccurs="0" name="password" type="xs:string" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:simpleType name="ReturnDataType"> <xs:restriction base="xs:string"> <xs:enumeration value="identifier" /> <xs:enumeration value="data" /> <xs:enumeration value="everything" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="ExecutionModeType"> <xs:restriction base="xs:string"> <xs:enumeration value="synchronous" /> <xs:enumeration value="asynchronous" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="ModificationModeType"> <xs:restriction base="xs:string"> <xs:enumeration value="add" /> <xs:enumeration value="replace" /> <xs:enumeration value="delete" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="StatusCodeType"> <xs:restriction base="xs:string"> <xs:enumeration value="success" /> <xs:enumeration value="failure" /> <xs:enumeration value="pending" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="ErrorCode"> <xs:restriction base="xs:string"> <xs:enumeration value="malformedRequest" /> <xs:enumeration value="unsupportedOperation" /> <xs:enumeration value="unsupportedIdentifierType" /> <xs:enumeration value="noSuchIdentifier" /> <xs:enumeration value="customError" /> <xs:enumeration value="unsupportedExecutionMode" /> <xs:enumeration value="invalidContainment" /> <xs:enumeration value="noSuchRequest" /> <xs:enumeration value="unsupportedSelectionType" /> <xs:enumeration value="resultSetToLarge" /> <xs:enumeration value="unsupportedProfile" /> <xs:enumeration value="invalidIdentifier" /> <xs:enumeration value="alreadyExists" /> <xs:enumeration value="containerNotEmpty" /> </xs:restriction> </xs:simpleType> <xs:element name="add" type="tns:add" /> <xs:complexType name="add"> <xs:sequence> <xs:element minOccurs="0" name="reqType" type="tns:AddRequestType" /> </xs:sequence> </xs:complexType> <xs:element name="testConnection" type="tns:testConnection" /> <xs:complexType name="testConnection"> <xs:sequence> <xs:element minOccurs="0" name="targetID" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:element name="testConnectionResponse" type="tns:testConnectionResponse" /> <xs:complexType name="testConnectionResponse"> <xs:sequence> <xs:element name="return" type="xs:boolean" /> </xs:sequence> </xs:complexType> <xs:element name="expirePassword" type="tns:expirePassword" /> <xs:complexType name="expirePassword"> <xs:sequence> <xs:element minOccurs="0" name="request" type="tns:ExpirePasswordRequestType" /> </xs:sequence> </xs:complexType> <xs:element name="lookup" type="tns:lookup" /> <xs:complexType name="lookup"> <xs:sequence> <xs:element minOccurs="0" name="reqType" type="tns:LookupRequestType" /> </xs:sequence> </xs:complexType> <xs:element name="delete" type="tns:delete" /> <xs:complexType name="delete"> <xs:sequence> <xs:element minOccurs="0" name="reqType" type="tns:DeleteRequestType" /> </xs:sequence> </xs:complexType> <xs:element name="validatePassword" type="tns:validatePassword" /> <xs:complexType name="validatePassword"> <xs:sequence> <xs:element minOccurs="0" name="request" type="tns:ValidatePasswordRequestType" /> </xs:sequence> </xs:complexType> <xs:element name="modify" type="tns:modify" /> <xs:complexType name="modify"> <xs:sequence> <xs:element minOccurs="0" name="reqType" type="tns:ModifyRequestType" /> </xs:sequence> </xs:complexType> <xs:element name="setPassword" type="tns:setPassword" /> <xs:complexType name="setPassword"> <xs:sequence> <xs:element minOccurs="0" name="request" type="tns:SetPasswordRequestType" /> </xs:sequence> </xs:complexType> <xs:element name="resetPassword" type="tns:resetPassword" /> <xs:complexType name="resetPassword"> <xs:sequence> <xs:element minOccurs="0" name="request" type="tns:ResetPasswordRequestType" /> </xs:sequence> </xs:complexType> </xs:schema> </wsdl:types> <wsdl:message name="resetPasswordResponse"> <wsdl:part element="tns:resetPasswordResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="modifyResponse"> <wsdl:part element="tns:modifyResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="delete"> <wsdl:part element="tns:delete" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="setPassword"> <wsdl:part element="tns:setPassword" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="deleteResponse"> <wsdl:part element="tns:deleteResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="setPasswordResponse"> <wsdl:part element="tns:setPasswordResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="validatePasswordResponse"> <wsdl:part element="tns:validatePasswordResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="lookupResponse"> <wsdl:part element="tns:lookupResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="testConnection"> <wsdl:part element="tns:testConnection" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="modify"> <wsdl:part element="tns:modify" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="testConnectionResponse"> <wsdl:part element="tns:testConnectionResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="add"> <wsdl:part element="tns:add" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="expirePasswordResponse"> <wsdl:part element="tns:expirePasswordResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="lookup"> <wsdl:part element="tns:lookup" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="addResponse"> <wsdl:part element="tns:addResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="expirePassword"> <wsdl:part element="tns:expirePassword" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="validatePassword"> <wsdl:part element="tns:validatePassword" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="resetPassword"> <wsdl:part element="tns:resetPassword" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:portType name="ConnectorService"> <wsdl:operation name="add"> <wsdl:input message="tns:add" name="add"> </wsdl:input> <wsdl:output message="tns:addResponse" name="addResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="testConnection"> <wsdl:input message="tns:testConnection" name="testConnection"> </wsdl:input> <wsdl:output message="tns:testConnectionResponse" name="testConnectionResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="expirePassword"> <wsdl:input message="tns:expirePassword" name="expirePassword"> </wsdl:input> <wsdl:output message="tns:expirePasswordResponse" name="expirePasswordResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="lookup"> <wsdl:input message="tns:lookup" name="lookup"> </wsdl:input> <wsdl:output message="tns:lookupResponse" name="lookupResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="delete"> <wsdl:input message="tns:delete" name="delete"> </wsdl:input> <wsdl:output message="tns:deleteResponse" name="deleteResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="validatePassword"> <wsdl:input message="tns:validatePassword" name="validatePassword"> </wsdl:input> <wsdl:output message="tns:validatePasswordResponse" name="validatePasswordResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="modify"> <wsdl:input message="tns:modify" name="modify"> </wsdl:input> <wsdl:output message="tns:modifyResponse" name="modifyResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="setPassword"> <wsdl:input message="tns:setPassword" name="setPassword"> </wsdl:input> <wsdl:output message="tns:setPasswordResponse" name="setPasswordResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="resetPassword"> <wsdl:input message="tns:resetPassword" name="resetPassword"> </wsdl:input> <wsdl:output message="tns:resetPasswordResponse" name="resetPasswordResponse"> </wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="ExampleConnectorServiceSoapBinding" type="tns:ConnectorService"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="add"> <soap:operation soapAction="" style="document" /> <wsdl:input name="add"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="addResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="testConnection"> <soap:operation soapAction="" style="document" /> <wsdl:input name="testConnection"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="testConnectionResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="expirePassword"> <soap:operation soapAction="" style="document" /> <wsdl:input name="expirePassword"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="expirePasswordResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="lookup"> <soap:operation soapAction="" style="document" /> <wsdl:input name="lookup"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="lookupResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="delete"> <soap:operation soapAction="" style="document" /> <wsdl:input name="delete"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="deleteResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="validatePassword"> <soap:operation soapAction="" style="document" /> <wsdl:input name="validatePassword"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="validatePasswordResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="modify"> <soap:operation soapAction="" style="document" /> <wsdl:input name="modify"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="modifyResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="setPassword"> <soap:operation soapAction="" style="document" /> <wsdl:input name="setPassword"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="setPasswordResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="resetPassword"> <soap:operation soapAction="" style="document" /> <wsdl:input name="resetPassword"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="resetPasswordResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="ExampleConnectorService"> <wsdl:port binding="tns:ExampleConnectorServiceSoapBinding" name="ExampleConnectorServicePort"> <soap:address location="http://localhost:8080/idm-connector-ws/ExampleConnectorService" /> </wsdl:port> </wsdl:service> </wsdl:definitions> |
|
|
Re: Marshalling Error when Schema Validation is OnCouple 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.user@...")); > > > 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 dkulp@... http://www.dankulp.com/blog |
|
|
Re: Marshalling Error when Schema Validation is OnHi Dan:
ASM is on the classpth.. Does this have an impact? Dumb question - how do I use the wsdl at runtime? Do you mean that I should use the wsdl in my service definition? ie. jaxws:endpoint id="userDataService" implementor="#userManager" wsdlLocation="WEB-INF/wsdl/UserDataService.wsdl" address="/UserDataService"/> thanks Suneet Daniel Kulp wrote: > 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.user@...")); >> >> >> 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) >> >> > > |
|
|
Re: Marshalling Error when Schema Validation is OnOn Tue October 27 2009 1:17:40 pm Suneet Shah wrote:
> Hi Dan: > ASM is on the classpth.. Does this have an impact? It can for cases where the SEI and stuff was not generated from wsdl. If asm isn't there, that can be a problem. If ASM is there, then you should be all set. > Dumb question - how do I use the wsdl at runtime? > Do you mean that I should use the wsdl in my service definition? ie. > jaxws:endpoint id="userDataService" > implementor="#userManager" > wsdlLocation="WEB-INF/wsdl/UserDataService.wsdl" > address="/UserDataService"/> Yes, no the server side. On the client side, factory.setWsdlLocation(....) type thing to make sure the client is created with the appropriate wsdl. Dan > > > thanks > Suneet > > Daniel Kulp wrote: > > 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/ExampleConnec > >>tor Service"); javax.xml.namespace.QName qname = > >> javax.xml.namespace.QName.valueOf("http://www.openiam.org/service/connec > >>tor "); 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.user@...")); > >> > >> > >> 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.jav > >>a:3 5) at > >> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4Tes > >>tRe ference.java:45) at > >> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.ja > >>va: 38) at > >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTe > >>stR unner.java:460) at > >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTe > >>stR unner.java:673) at > >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRun > >>ner .java:386) at > >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRu > >>nne 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.unmarsh > >>alF ault(Soap11FaultInInterceptor.java:75) at > >> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleM > >>ess age(Soap11FaultInInterceptor.java:46) at > >> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleM > >>ess age(Soap11FaultInInterceptor.java:35) at > >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC > >>hai n.java:236) at > >> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage > >>(Ab stractFaultChainInitiatorObserver.java:96) at > >> org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMess > >>age (CheckFaultInterceptor.java:69) at > >> org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMess > >>age (CheckFaultInterceptor.java:34) at > >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC > >>hai n.java:236) at > >> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:641) at > >> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResp > >>ons eInternal(HTTPConduit.java:2134) at > >> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResp > >>ons e(HTTPConduit.java:2013) at > >> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTP > >>Con 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$MessageSenderEndingI > >>nte rceptor.handleMessage(MessageSenderInterceptor.java:62) at > >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC > >>hai 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 dkulp@... http://www.dankulp.com/blog |
|
|
Re: Marshalling Error when Schema Validation is OnI looked at the request that is being generated by the client code and
there is mis-match between what is defined in the wsdl and what is being generated. As you suggested, I put in the location of the wsdl, but now I am getting the following error below. I have attached my wsdl, but I dont see url that its looking for. How do I get past this? JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.setServiceClass(ConnectorService.class); factory.setAddress(connector.getServiceUrl()); javax.xml.namespace.QName qname = javax.xml.namespace.QName.valueOf(connector.getServiceNameSpace()); factory.setEndpointName(qname); factory.setWsdlLocation("/WEB-INF/wsdl/ConnectorService.xml"); ConnectorService client = (ConnectorService) factory.create(); org.apache.cxf.interceptor.Fault: Could not find definition for service {http://www.openiam.org/service/connector}ConnectorServiceService. at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:148) at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMethodInvoker.java:83) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:114) at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:55) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:68) at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) Thanks for your help Daniel Kulp wrote: > On Tue October 27 2009 1:17:40 pm Suneet Shah wrote: > >> Hi Dan: >> ASM is on the classpth.. Does this have an impact? >> > > It can for cases where the SEI and stuff was not generated from wsdl. If asm > isn't there, that can be a problem. If ASM is there, then you should be all > set. > > >> Dumb question - how do I use the wsdl at runtime? >> Do you mean that I should use the wsdl in my service definition? ie. >> jaxws:endpoint id="userDataService" >> implementor="#userManager" >> wsdlLocation="WEB-INF/wsdl/UserDataService.wsdl" >> address="/UserDataService"/> >> > > Yes, no the server side. > > On the client side, > factory.setWsdlLocation(....) > type thing to make sure the client is created with the appropriate wsdl. > > > > Dan > > > >> thanks >> Suneet >> >> Daniel Kulp wrote: >> >>> 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/ExampleConnec >>>> tor Service"); javax.xml.namespace.QName qname = >>>> javax.xml.namespace.QName.valueOf("http://www.openiam.org/service/connec >>>> tor "); 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.user@...")); >>>> >>>> >>>> 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.jav >>>> a:3 5) at >>>> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4Tes >>>> tRe ference.java:45) at >>>> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.ja >>>> va: 38) at >>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTe >>>> stR unner.java:460) at >>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTe >>>> stR unner.java:673) at >>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRun >>>> ner .java:386) at >>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRu >>>> nne 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.unmarsh >>>> alF ault(Soap11FaultInInterceptor.java:75) at >>>> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleM >>>> ess age(Soap11FaultInInterceptor.java:46) at >>>> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleM >>>> ess age(Soap11FaultInInterceptor.java:35) at >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC >>>> hai n.java:236) at >>>> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage >>>> (Ab stractFaultChainInitiatorObserver.java:96) at >>>> org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMess >>>> age (CheckFaultInterceptor.java:69) at >>>> org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMess >>>> age (CheckFaultInterceptor.java:34) at >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC >>>> hai n.java:236) at >>>> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:641) at >>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResp >>>> ons eInternal(HTTPConduit.java:2134) at >>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResp >>>> ons e(HTTPConduit.java:2013) at >>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTP >>>> Con 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$MessageSenderEndingI >>>> nte rceptor.handleMessage(MessageSenderInterceptor.java:62) at >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC >>>> hai 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) >>>> > > <?xml version='1.0' encoding='UTF-8'?><wsdl:definitions name="ExampleConnectorService" targetNamespace="http://www.openiam.org/service/connector" xmlns:ns1="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.openiam.org/service/connector" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:types> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.openiam.org/service/connector" xmlns:tns="http://www.openiam.org/service/connector" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="addRequest" type="tns:AddRequestType" /> <xs:element name="addResponse" type="tns:AddResponseType" /> <xs:element name="deleteRequest" type="tns:DeleteRequestType" /> <xs:element name="deleteResponse" type="tns:ResponseType" /> <xs:element name="expirePasswordRequest" type="tns:ExpirePasswordRequestType" /> <xs:element name="expirePasswordResponse" type="tns:ResponseType" /> <xs:element name="extensibleUser" type="tns:ExtensibleUser" /> <xs:element name="listTargetsRequest" type="tns:ListTargetsRequestType" /> <xs:element name="listTargetsResponse" type="tns:ListTargetsResponseType" /> <xs:element name="lookupRequest" type="tns:LookupRequestType" /> <xs:element name="lookupResponse" type="tns:LookupResponseType" /> <xs:element name="modifyRequest" type="tns:ModifyRequestType" /> <xs:element name="modifyResponse" type="tns:ModifyResponseType" /> <xs:element name="resetPasswordRequest" type="tns:ResetPasswordRequestType" /> <xs:element name="resetPasswordResponse" type="tns:ResetPasswordResponseType" /> <xs:element name="select" type="tns:SelectionType" /> <xs:element name="setPasswordRequest" type="tns:SetPasswordRequestType" /> <xs:element name="setPasswordResponse" type="tns:ResponseType" /> <xs:element name="validatePasswordRequest" type="tns:ValidatePasswordRequestType" /> <xs:element name="validatePasswordResponse" type="tns:ValidatePasswordResponseType" /> <xs:complexType name="ExtensibleType"> <xs:sequence> <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:complexType> <xs:complexType name="SelectionType"> <xs:complexContent> <xs:extension base="tns:QueryClauseType"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="namespacePrefixMap" nillable="true" type="tns:NamespacePrefixMappingType" /> </xs:sequence> <xs:attribute name="path" type="xs:string" use="required" /> <xs:attribute name="namespaceURI" type="xs:string" use="required" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="QueryClauseType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="NamespacePrefixMappingType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence /> <xs:attribute name="prefix" type="xs:string" use="required" /> <xs:attribute name="namespace" type="xs:string" use="required" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="AddRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence> <xs:element minOccurs="0" name="psoID" type="tns:PSOIdentifierType" /> <xs:element minOccurs="0" name="containerID" type="tns:PSOIdentifierType" /> <xs:element name="data" type="tns:ExtensibleType" /> <xs:element maxOccurs="unbounded" minOccurs="0" name="capabilityData" nillable="true" type="tns:CapabilityDataType" /> </xs:sequence> <xs:attribute name="targetID" type="xs:string" /> <xs:attribute name="returnData" type="tns:ReturnDataType" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="RequestType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence /> <xs:attribute name="requestID" type="xs:ID" /> <xs:attribute name="executionMode" type="tns:ExecutionModeType" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="PSOIdentifierType"> <xs:complexContent> <xs:extension base="tns:IdentifierType"> <xs:sequence> <xs:element minOccurs="0" name="containerID" type="tns:PSOIdentifierType" /> </xs:sequence> <xs:attribute name="targetID" type="xs:string" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="IdentifierType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence /> <xs:attribute name="ID" type="xs:string" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="CapabilityDataType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence /> <xs:attribute name="mustUnderstand" type="xs:boolean" /> <xs:attribute name="capabilityURI" type="xs:anyURI" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="LookupRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence> <xs:element name="psoID" type="tns:PSOIdentifierType" /> </xs:sequence> <xs:attribute name="returnData" type="tns:ReturnDataType" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ListTargetsRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence /> <xs:attribute name="profile" type="xs:anyURI" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="DeleteRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence> <xs:element name="psoID" type="tns:PSOIdentifierType" /> </xs:sequence> <xs:attribute name="recursive" type="xs:boolean" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ModifyRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence> <xs:element name="psoID" type="tns:PSOIdentifierType" /> <xs:element maxOccurs="unbounded" name="modification" type="tns:ModificationType" /> </xs:sequence> <xs:attribute name="returnData" type="tns:ReturnDataType" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ModificationType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence> <xs:element minOccurs="0" name="component" type="tns:SelectionType" /> <xs:element minOccurs="0" name="data" type="tns:ExtensibleType" /> <xs:element maxOccurs="unbounded" minOccurs="0" name="capabilityData" nillable="true" type="tns:CapabilityDataType" /> </xs:sequence> <xs:attribute name="modificationMode" type="tns:ModificationModeType" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="CapabilityType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="appliesTo" nillable="true" type="tns:SchemaEntityRefType" /> </xs:sequence> <xs:attribute name="namespaceURI" type="xs:anyURI" /> <xs:attribute name="location" type="xs:anyURI" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="SchemaEntityRefType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence /> <xs:attribute name="targetID" type="xs:string" /> <xs:attribute name="entityName" type="xs:string" /> <xs:attribute name="isContainer" type="xs:boolean" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ModifyResponseType"> <xs:complexContent> <xs:extension base="tns:ResponseType"> <xs:sequence> <xs:element minOccurs="0" name="pso" type="tns:PSOType" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ResponseType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="errorMessage" nillable="true" type="xs:string" /> </xs:sequence> <xs:attribute name="status" type="tns:StatusCodeType" use="required" /> <xs:attribute name="requestID" type="xs:ID" /> <xs:attribute name="error" type="tns:ErrorCode" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="PSOType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence> <xs:element name="psoID" type="tns:PSOIdentifierType" /> <xs:element minOccurs="0" name="data" type="tns:ExtensibleType" /> <xs:element maxOccurs="unbounded" minOccurs="0" name="capabilityData" nillable="true" type="tns:CapabilityDataType" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="AddResponseType"> <xs:complexContent> <xs:extension base="tns:ResponseType"> <xs:sequence> <xs:element minOccurs="0" name="pso" type="tns:PSOType" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ListTargetsResponseType"> <xs:complexContent> <xs:extension base="tns:ResponseType"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="target" nillable="true" type="tns:TargetType" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="TargetType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence> <xs:element maxOccurs="unbounded" name="schema" type="tns:SchemaType" /> <xs:element minOccurs="0" name="capabilities" type="tns:CapabilitiesListType" /> </xs:sequence> <xs:attribute name="targetID" type="xs:string" /> <xs:attribute name="profile" type="xs:anyURI" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="SchemaType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="supportedSchemaEntity" nillable="true" type="tns:SchemaEntityRefType" /> </xs:sequence> <xs:attribute name="ref" type="xs:anyURI" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="CapabilitiesListType"> <xs:complexContent> <xs:extension base="tns:ExtensibleType"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="capability" nillable="true" type="tns:CapabilityType" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="LookupResponseType"> <xs:complexContent> <xs:extension base="tns:ResponseType"> <xs:sequence> <xs:element minOccurs="0" name="pso" type="tns:PSOType" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ExtensibleUser"> <xs:complexContent> <xs:extension base="tns:ExtensibleObject"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="address" nillable="true" type="tns:ExtensibleObject" /> <xs:element maxOccurs="unbounded" minOccurs="0" name="phone" nillable="true" type="tns:ExtensibleObject" /> <xs:element maxOccurs="unbounded" minOccurs="0" name="email" nillable="true" type="tns:ExtensibleObject" /> <xs:element maxOccurs="unbounded" minOccurs="0" name="group" nillable="true" type="tns:ExtensibleGroup" /> <xs:element maxOccurs="unbounded" minOccurs="0" name="role" nillable="true" type="tns:ExtensibleRole" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ExtensibleObject"> <xs:sequence> <xs:element minOccurs="0" name="objectId" type="xs:string" /> <xs:element minOccurs="0" name="name" type="xs:string" /> <xs:element name="operation" type="xs:int" /> <xs:element maxOccurs="unbounded" minOccurs="0" name="attributes" nillable="true" type="tns:ExtensibleAttribute" /> </xs:sequence> </xs:complexType> <xs:complexType name="ExtensibleAttribute"> <xs:sequence> <xs:element minOccurs="0" name="name" type="xs:string" /> <xs:element minOccurs="0" name="value" type="xs:string" /> <xs:element name="operation" type="xs:int" /> </xs:sequence> </xs:complexType> <xs:complexType name="ExtensibleGroup"> <xs:complexContent> <xs:extension base="tns:ExtensibleObject"> <xs:sequence /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ExtensibleRole"> <xs:complexContent> <xs:extension base="tns:ExtensibleObject"> <xs:sequence /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ExpirePasswordRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence> <xs:element name="psoID" type="tns:PSOIdentifierType" /> </xs:sequence> <xs:attribute name="remainingLogins" type="xs:int" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ValidatePasswordRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence> <xs:element name="psoID" type="tns:PSOIdentifierType" /> <xs:element name="password" type="xs:string" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ValidatePasswordResponseType"> <xs:complexContent> <xs:extension base="tns:ResponseType"> <xs:sequence /> <xs:attribute name="valid" type="xs:boolean" /> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="SetPasswordRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence> <xs:element name="psoID" type="tns:PSOIdentifierType" /> <xs:element name="password" type="xs:string" /> <xs:element minOccurs="0" name="currentPassword" type="xs:string" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ResetPasswordRequestType"> <xs:complexContent> <xs:extension base="tns:RequestType"> <xs:sequence> <xs:element name="psoID" type="tns:PSOIdentifierType" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ResetPasswordResponseType"> <xs:complexContent> <xs:extension base="tns:ResponseType"> <xs:sequence> <xs:element minOccurs="0" name="password" type="xs:string" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:simpleType name="ReturnDataType"> <xs:restriction base="xs:string"> <xs:enumeration value="identifier" /> <xs:enumeration value="data" /> <xs:enumeration value="everything" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="ExecutionModeType"> <xs:restriction base="xs:string"> <xs:enumeration value="synchronous" /> <xs:enumeration value="asynchronous" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="ModificationModeType"> <xs:restriction base="xs:string"> <xs:enumeration value="add" /> <xs:enumeration value="replace" /> <xs:enumeration value="delete" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="StatusCodeType"> <xs:restriction base="xs:string"> <xs:enumeration value="success" /> <xs:enumeration value="failure" /> <xs:enumeration value="pending" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="ErrorCode"> <xs:restriction base="xs:string"> <xs:enumeration value="malformedRequest" /> <xs:enumeration value="unsupportedOperation" /> <xs:enumeration value="unsupportedIdentifierType" /> <xs:enumeration value="noSuchIdentifier" /> <xs:enumeration value="customError" /> <xs:enumeration value="unsupportedExecutionMode" /> <xs:enumeration value="invalidContainment" /> <xs:enumeration value="noSuchRequest" /> <xs:enumeration value="unsupportedSelectionType" /> <xs:enumeration value="resultSetToLarge" /> <xs:enumeration value="unsupportedProfile" /> <xs:enumeration value="invalidIdentifier" /> <xs:enumeration value="alreadyExists" /> <xs:enumeration value="containerNotEmpty" /> </xs:restriction> </xs:simpleType> <xs:element name="add" type="tns:add" /> <xs:complexType name="add"> <xs:sequence> <xs:element minOccurs="0" name="reqType" type="tns:AddRequestType" /> </xs:sequence> </xs:complexType> <xs:element name="testConnection" type="tns:testConnection" /> <xs:complexType name="testConnection"> <xs:sequence> <xs:element minOccurs="0" name="targetID" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:element name="testConnectionResponse" type="tns:testConnectionResponse" /> <xs:complexType name="testConnectionResponse"> <xs:sequence> <xs:element name="return" type="xs:boolean" /> </xs:sequence> </xs:complexType> <xs:element name="expirePassword" type="tns:expirePassword" /> <xs:complexType name="expirePassword"> <xs:sequence> <xs:element minOccurs="0" name="request" type="tns:ExpirePasswordRequestType" /> </xs:sequence> </xs:complexType> <xs:element name="lookup" type="tns:lookup" /> <xs:complexType name="lookup"> <xs:sequence> <xs:element minOccurs="0" name="reqType" type="tns:LookupRequestType" /> </xs:sequence> </xs:complexType> <xs:element name="delete" type="tns:delete" /> <xs:complexType name="delete"> <xs:sequence> <xs:element minOccurs="0" name="reqType" type="tns:DeleteRequestType" /> </xs:sequence> </xs:complexType> <xs:element name="validatePassword" type="tns:validatePassword" /> <xs:complexType name="validatePassword"> <xs:sequence> <xs:element minOccurs="0" name="request" type="tns:ValidatePasswordRequestType" /> </xs:sequence> </xs:complexType> <xs:element name="modify" type="tns:modify" /> <xs:complexType name="modify"> <xs:sequence> <xs:element minOccurs="0" name="reqType" type="tns:ModifyRequestType" /> </xs:sequence> </xs:complexType> <xs:element name="setPassword" type="tns:setPassword" /> <xs:complexType name="setPassword"> <xs:sequence> <xs:element minOccurs="0" name="request" type="tns:SetPasswordRequestType" /> </xs:sequence> </xs:complexType> <xs:element name="resetPassword" type="tns:resetPassword" /> <xs:complexType name="resetPassword"> <xs:sequence> <xs:element minOccurs="0" name="request" type="tns:ResetPasswordRequestType" /> </xs:sequence> </xs:complexType> </xs:schema> </wsdl:types> <wsdl:message name="resetPasswordResponse"> <wsdl:part element="tns:resetPasswordResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="modifyResponse"> <wsdl:part element="tns:modifyResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="delete"> <wsdl:part element="tns:delete" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="setPassword"> <wsdl:part element="tns:setPassword" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="deleteResponse"> <wsdl:part element="tns:deleteResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="setPasswordResponse"> <wsdl:part element="tns:setPasswordResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="validatePasswordResponse"> <wsdl:part element="tns:validatePasswordResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="lookupResponse"> <wsdl:part element="tns:lookupResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="testConnection"> <wsdl:part element="tns:testConnection" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="modify"> <wsdl:part element="tns:modify" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="testConnectionResponse"> <wsdl:part element="tns:testConnectionResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="add"> <wsdl:part element="tns:add" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="expirePasswordResponse"> <wsdl:part element="tns:expirePasswordResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="lookup"> <wsdl:part element="tns:lookup" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="addResponse"> <wsdl:part element="tns:addResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="expirePassword"> <wsdl:part element="tns:expirePassword" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="validatePassword"> <wsdl:part element="tns:validatePassword" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="resetPassword"> <wsdl:part element="tns:resetPassword" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:portType name="ConnectorService"> <wsdl:operation name="add"> <wsdl:input message="tns:add" name="add"> </wsdl:input> <wsdl:output message="tns:addResponse" name="addResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="testConnection"> <wsdl:input message="tns:testConnection" name="testConnection"> </wsdl:input> <wsdl:output message="tns:testConnectionResponse" name="testConnectionResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="expirePassword"> <wsdl:input message="tns:expirePassword" name="expirePassword"> </wsdl:input> <wsdl:output message="tns:expirePasswordResponse" name="expirePasswordResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="lookup"> <wsdl:input message="tns:lookup" name="lookup"> </wsdl:input> <wsdl:output message="tns:lookupResponse" name="lookupResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="delete"> <wsdl:input message="tns:delete" name="delete"> </wsdl:input> <wsdl:output message="tns:deleteResponse" name="deleteResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="validatePassword"> <wsdl:input message="tns:validatePassword" name="validatePassword"> </wsdl:input> <wsdl:output message="tns:validatePasswordResponse" name="validatePasswordResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="modify"> <wsdl:input message="tns:modify" name="modify"> </wsdl:input> <wsdl:output message="tns:modifyResponse" name="modifyResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="setPassword"> <wsdl:input message="tns:setPassword" name="setPassword"> </wsdl:input> <wsdl:output message="tns:setPasswordResponse" name="setPasswordResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="resetPassword"> <wsdl:input message="tns:resetPassword" name="resetPassword"> </wsdl:input> <wsdl:output message="tns:resetPasswordResponse" name="resetPasswordResponse"> </wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="ExampleConnectorServiceSoapBinding" type="tns:ConnectorService"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="add"> <soap:operation soapAction="" style="document" /> <wsdl:input name="add"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="addResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="testConnection"> <soap:operation soapAction="" style="document" /> <wsdl:input name="testConnection"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="testConnectionResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="expirePassword"> <soap:operation soapAction="" style="document" /> <wsdl:input name="expirePassword"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="expirePasswordResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="lookup"> <soap:operation soapAction="" style="document" /> <wsdl:input name="lookup"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="lookupResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="delete"> <soap:operation soapAction="" style="document" /> <wsdl:input name="delete"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="deleteResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="validatePassword"> <soap:operation soapAction="" style="document" /> <wsdl:input name="validatePassword"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="validatePasswordResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="modify"> <soap:operation soapAction="" style="document" /> <wsdl:input name="modify"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="modifyResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="setPassword"> <soap:operation soapAction="" style="document" /> <wsdl:input name="setPassword"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="setPasswordResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="resetPassword"> <soap:operation soapAction="" style="document" /> <wsdl:input name="resetPassword"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="resetPasswordResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="ExampleConnectorService"> <wsdl:port binding="tns:ExampleConnectorServiceSoapBinding" name="ExampleConnectorServicePort"> <soap:address location="http://localhost:8080/idm-connector-ws/ExampleConnectorService" /> </wsdl:port> </wsdl:service> </wsdl:definitions> |
| Free embeddable forum powered by Nabble | Forum Help |