My apologies in advance for some of the syntax and verbiage - I am a newbie in all of this, but did do my reading / research / and chat on IRC’s.
The current setup I have is this: Apache DS LDAP version 2.0.0-M14 running on Linux with Port 8660. The server instance works fine and I am able to do a search via Apache API in Java (Eclipse). I bind to this server anonymously via connection.bind() Tomcat version 7.0.47 running on Mac OS X (Maverick) with Port 8080. The Tomcat instance work fine using the installed default values. I am able to run simple REST API and consume them via any browser. Issue: I am trying to create a connection to the LDAP server via anonymous binding. I configured the appropriate conf file: server.xml with the REALM as follows: <Realm className="org.apache.catalina.realm.JNDIRealm" connectionURL="ldap://Integration01.icsl.net:8660" debug="99" userBase="dc=sumsmail,dc=com" userSearch="(mail{0})" userSearch="(userCertificate{0})" userSubtree="true" roleBase="dc=sumsmail,dc=com" roleName="cn" roleSearch="(mail={0})" roleSearch="(userCertificate={0})" roleSubtree="true" /> </Realm> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> This is the only changes I made. When I launch the Server, it crashes immediately, giving me the following error(s): Nov 4, 2013 10:22:31 AM org.apache.catalina.core.AprLifecycleListener init INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java Nov 4, 2013 10:22:31 AM org.apache.tomcat.util.digester.Digester fatalError SEVERE: Parse Fatal Error at line 116 column 37: Attribute "userSearch" was already specified for element "Realm". org.xml.sax.SAXParseException: Attribute "userSearch" was already specified for element "Realm". at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388) at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1476) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(XMLDocumentFragmentScannerImpl.java:1567) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1326) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2763) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:513) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:815) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:744) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:128) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:543) at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1537) at org.apache.catalina.startup.Catalina.load(Catalina.java:617) at org.apache.catalina.startup.Catalina.load(Catalina.java:665) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) Nov 4, 2013 10:22:31 AM org.apache.catalina.startup.Catalina load WARNING: Catalina.start using conf/server.xml: Attribute "userSearch" was already specified for element "Realm". Nov 4, 2013 10:22:31 AM org.apache.tomcat.util.digester.Digester fatalError SEVERE: Parse Fatal Error at line 116 column 37: Attribute "userSearch" was already specified for element "Realm". org.xml.sax.SAXParseException: Attribute "userSearch" was already specified for element "Realm". at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388) at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1476) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(XMLDocumentFragmentScannerImpl.java:1567) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1326) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2763) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:513) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:815) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:744) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:128) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:543) at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1537) at org.apache.catalina.startup.Catalina.load(Catalina.java:617) at org.apache.catalina.startup.Catalina.start(Catalina.java:679) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456) Nov 4, 2013 10:22:31 AM org.apache.catalina.startup.Catalina load WARNING: Catalina.start using conf/server.xml: Attribute "userSearch" was already specified for element "Realm". Nov 4, 2013 10:22:31 AM org.apache.catalina.startup.Catalina start SEVERE: Cannot start server. Server instance is not configured. I am not sure what I am doing wrong and/or missing. If there is another way to setup a connection, I am not aware of this, nor did I find any documentation about this anywhere. What I am trying to achieve here: Given a userName, the REST API (server side) running on Tomcat will bind to the LDAP and retrieve a Directory list to compare this with the request from the client. It will then iterate throughout this Array and return some data. Thank you for any help and advice. Kind regards Shai Levit