cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Kulp <dk...@apache.org>
Subject Re: Unmarshalling Error
Date Mon, 09 Nov 2009 15:55:47 GMT

One note:  if you cannot figure out the ASM issue, you CAN work around it.   
If you use java2ws tool with the -createWrapperBeans flag, it will create 
.java code for the wrapper beans that ASM would have created at runtime.   You 
would then need to wire them into the operations with the appropriate 
@RequestWrapper/@ResponseWrapper annotations on the methods.    If you do 
that, asm isn't needed at all at runtime.   It's just kind of a pain to setup.

Dan


On Mon November 9 2009 10:47:35 am Daniel Kulp wrote:
> On Mon November 9 2009 10:39:31 am Suneet Shah wrote:
> > >> Any suggestions on what could be wrong, would be greatly appreciated.
> > >
> > > Make sure  you have ASM on the classpath on the server side, preferably
> > > on both sides.
> > >
> > > Judging from the soap message, I'm going to assume this is a "java
> > > first" case and the client is not using types and interfaces that are
> > > generated from the wsdl2java tool run on the wsdl.   Correct?    I
> > > assume the server side is the same way?    If so, DEFINITELY stick ASM
> > > there.
> >
> > I have ASM on the classpath. However, I seeing 2 versions of ASM 1..5.3,
> > which Hibernate seems to be pulling in and 2.2.3.  Is this causing the
> > problem?
> 
> Yep.   Most likely.   If we detect 1.5.x, we more or less have to punt as
>  we need 2.x or 3.x.      If you can, exclude the cglib thing they pull in
>  and have it pull in the "cglib-nodeps" jar instead.   The cglib-nodeps jar
>  bundles in the version of asm they need (1.5.x), but in a unique package
>  to not interfere.
> 
> > Yes, this is a java first case and the client is not using the types or
> > interfaces that are generated by wsdl to java.  Should I make that
> > change?
> 
> No.  If you can get the ASM stuff to work, it's not really needed.  If you
> aren't validating on the client side, it's not needed there at all and I
> wouldn't worry about it.   The soap message is completely correct.
> 
> Dan
> 
> > > Dan
> > >
> > >> Regards
> > >> Suneet
> > >>
> > >>
> > >>
> > >> Client Code:
> > >>
> > >> Service service =
> > >> Service.create(QName.valueOf("http://localhost:8080/idm-connector-ws/E
> > >>xa mpl eConnectorService"));
> > >>
> > >> service.addPort(new
> > >> QName("http://www.openiam.org/service/connector","ExampleConnectorServ
> > >>ic ePo rt"), SOAPBinding.SOAP11HTTP_BINDING,
> > >> "http://localhost:8080/idm-connector-ws/ExampleConnectorService");
> > >>
> > >> ConnectorService port = service.getPort(new
> > >> QName("http://www.openiam.org/service/connector","ExampleConnectorServ
> > >>ic ePo rt"),
> > >>
> > >> ConnectorService.class);
> > >>
> > >>
> > >> log.info("connector service client " + port);
> > >>
> > >> AddRequestType addReqType = new AddRequestType();
> > >> PSOIdentifierType idType = new
> > >> PSOIdentifierType(lg.getId().getLogin(),null, "target");
> > >> addReqType.setPsoID(idType);
> > >> addReqType.setRequestID("R4589");
> > >> addReqType.setTargetID(lg.getId().getManagedSysId());
> > >>
> > >> ExtensibleUser extUser = new ExtensibleUser();
> > >> extUser.setName(user.getFirstName() + " " + user.getLastName());
> > >> extUser.getAttributes().add(new
> > >> ExtensibleAttribute("cn",user.getFirstName() + " " +
> > >> user.getLastName()));
> > >>
> > >> addReqType.getData().getAny().add(extUser);
> > >>
> > >> port.add(addReqType);
> > >>
> > >> Exception:
> > >>
> > >> DefaultValidationEventHandler: [FATAL_ERROR]: cvc-elt.1: Cannot find
> > >> the declaration of element 'reqType'. Location: line 4
> > >> Nov 9, 2009 1:38:40 AM org.apache.cxf.phase.PhaseInterceptorChain
> > >> doIntercept
> > >> WARNING: Interceptor has thrown exception, unwinding now
> > >> org.apache.cxf.interceptor.Fault: Unmarshalling Error: cvc-elt.1:
> > >> Cannot find the declaration of element 'reqType'.
> > >> at
> > >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.
> > >> java:661)
> > >> at
> > >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.j
> > >>av a:5 33) at
> > >> org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:128) at
> > >> org.apache.cxf.interceptor.DocLiteralInInterceptor.getPara(DocLiteralI
> > >>nI nte rceptor.java:238) at
> > >> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLi
> > >>te ral InInterceptor.java:117) at
> > >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
> > >>rC hai n.java:236) at
> > >> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitia
> > >>ti onO bserver.java:104)
> > >>
> > >> Generated Request:
> > >>
> > >> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> > >> <soap:Body>
> > >> <ns1:add xmlns:ns1="http://www.openiam.org/service/connector">
> > >> <reqType targetID="102" requestID="R4589"
> > >> xmlns="http://www.openiam.org/service/connector">
> > >> <psoID targetID="target" ID="test01.user04a"/>
> > >> <data>
> > >> <extensibleUser>
> > >> <name>Test User03</name>
> > >> <operation>0</operation>
> > >> <attributes>
> > >> <name>cn</name>
> > >> <value>Test User03</value>
> > >> <operation>1</operation>
> > >> </attributes>
> > >> </extensibleUser>
> > >> </data>
> > >> </reqType>
> > >> </ns1:add>
> > >> </soap:Body>
> > >> </soap:Envelope>
> > >>
> > >> WSDL:
> > >>
> > >>
> > >> <wsdl:definitions name="ExampleConnectorService"
> > >> targetNamespace="http://www.openiam.org/service/connector">
> > >> −
> > >> <wsdl:types>
> > >> −
> > >> <xs:schema attributeFormDefault="unqualified"
> > >> elementFormDefault="qualified"
> > >> targetNamespace="http://www.openiam.org/service/connector">
> > >> <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/ExampleConnectorServi
> > >>ce "/> </wsdl:port>
> > >> </wsdl:service>
> > >> </wsdl:definitions>
> 

-- 
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog

Mime
View raw message