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:
- tempcn=newUser - This value is arbitrary but must be present. New entry creations require a name to be created. This name is used by the SOAP-DSML Client however, the value is ignored by the driver which generated the "real" naming value for the entry as it is created.
- usercontext=ou=people,o=odjfs – All users are expected to be in this container.
- dsmlipaddress=10.25.77.63 – The IP Address of the SOAP driver.
- dsmlport=8888 – The port which the SOAP driver is listening.
- dsmlauthid= - Not currently used, but could be if implemented on the driver.
- dsmlauthpwd=- Not currently used, but could be if implemented on the driver.
- soapaction=\"#batchRequest\" – Sets the type of request. Generaly this is set to match what the SOAP driver can handle.
- objectclass=inetOrgPerson – New users are created as this LDAP ObjectClass.
- maxresults=10 – Maxinum results the client will accept as a result of a search request.
- searchtimelimit=10000 – After this many milliseconds, (10 seconds) the client will give up on the search request.
- dereference=1 – dereference aliases (0) or not (1).
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#
- Available from: http://developer.novell.com/wiki/index.php/LDAP_Classes_for_Java
- Java API: http://developer.novell.com/documentation/jldap/jldapenu/api/index.html
- The application was developed with the 2007-10 release.
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:
- Driver Not Running
- Driver listening on a different port than the SOAP-DSML Service is expecting
- Network errors
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.
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
Search#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:
- isRESULTS() will be set to false.
- isERROR() will be set to false.
- getERRORS() will contain the string "Search returned no results"