Dan:
thanks for your help. Fixing the ASM version allowed me to move
forward. However, I am not getting another unmarshalling error. I have
pasted my request and exception below. Any thoughts on what could be wrong?
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:add xmlns:ns1="http://www.openiam.org/service/connector">
<ns1:reqType targetID="102" requestID="R4589"
executionMode="synchronous" returnData="data">
<psoID targetID="target" ID="test01.user04a"/>
<containerID targetID="target" ID="Ctest01.user04a"/>
<data>
<extensibleUser>
<name>Test User03</name>
<operation>0</operation>
<attributes>
<name>cn</name>
<value>Test User03</value>
<operation>1</operation>
</attributes>
</extensibleUser>
</data>
</ns1:reqType>
</ns1:add>
</soap:Body>
</soap:Envelope>
[org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content
was foun
d starting with element 'ns1:reqType'. One of '{reqType}' is expected.]
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:425)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:362)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:339)
at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:646)
... 24 more
Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a:
Invalid content was found starting with element 'ns1:reqType'. One of
'{reqType}' is expected.
Daniel Kulp wrote:
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>