SOAP Application

SOAP-DSML Client#

Overview#

The purpose of the SOAP-DSML Client is to write properly formatted SOAP-DSML Packets to the Novell IDM SOAP Driver.

This client written in Java and requires at least Java 1.5 for operation. The Client makes use of the OpenSource JLDAP java libraries.

Generally, the SOAP-DSML Client is agnostic to attributes and values that are provided. The Attribute Names and attribute values will be passed to the Novell IDM SOAP Driver as provided.

Dsmlsoapclient.properties file#

Connection and other related values are provided to the SOAP-DSML Client from the dsmlsoapclient.properties file. The value explanation follows:

SoapReceiver.java#

The SoapReceiver.java is intended to provide a sample to be utilized for how to communicate to the SOAP-DSML Service. The purpose is to demonstrate how Java application developers could use the SOAP-DSML Client library to communicate to the SOAP-DSML Driver.

Java Libraries#

The DSMLSoapClient Service makes use of the following Java Libraries:

Novell’s LDAP Classes for Java#

Apache Log4J#

Logging is provided by the Apache log4j libraries.

Error Responses#

There are three types of errors that maybe encountered.

Connection Errors#

Connections Errors are failures to communicate with the SOAP-DSML Driver. These errors could be caused by:

Local LDAP Exceptions#

These would be caused by improper formated requests or operations. Typically these are encountered before the request has been sent to the SOAP-DSML Driver.

Operation Errors#

These errors would be responses from the SOAP-DSML Driver. Generally the LDAP Error code and the NDS error code are included within the error message form the Exception.

Non-Existent Users#

Modify or Delete#

On modification or delete requests against a User that does not exist; the following errors will show: LDAPException: other (53) Unwilling To Perform LDAPException: Server Message: Code(-9024) Unable to read current state of cn=LeeA31,ou=people,o=odjfs.DirXMLDSMLodjfs\people\LeeA31Publisher A search request against an entry that does not exist is not considered an error. You may wish to search to see if a given entry exists, before performing another operation. A search request where the entry is not will yield the following: