[cc'd users, since others might hit this as well]
As per RFC2396 (
http://www.ietf.org/rfc/rfc2396.txt , section 2.4.1),
you should be able to
escape the special characters in a URI using % and Hexadecimal representing
octet code of the special character.
So, you should be able to just replace comma with %2C or %2c
(
http://www.ietf.org/rfc/rfc1345.txt)
I hope your LDAP implementation supports that :-)
BTW, it seems, better for genericjmsra to provide a way to override
delimiter and separator.
Will you raise an enhancement request in java.net
website's issue tracker?
- Binod.
> Hi Binod,
> I tried to escape it, but it didn't work. Here is some log from
> what I tried. But all the three times the coma breaks the url.
>
> ****************
> with ldap://sun-ds-dev:389/dc=sun,dc=com - Just the normal
> ***************
> [#|2006-01-06T06:45:07.387-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=13;|setResourceAdapter
>
>
> com.sun.genericra.GenericJMSRA_at_540613b4{ConnectionFactoryClassName =
> null},{QueueConnectionFactoryClassName =
> null},{TopicConnectionFactoryClassName =
> null},{XAConnectionFactoryClassName =
> null},{XAQueueConnectionFactoryClassName =
> null},{XATopicConnectionFactoryClassName = null},{QueueClassName =
> null},{TopicClassName = null},{ConnectionFactoryProperties =
> null},{JndiProperties =
> java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory,java.naming.provider.url=ldap://sun-ds-dev:389/dc=sun,dc=com},{ProviderIntegrationMode
>
>
> = jndi},{CommonSetterMethodName = null},{SupportsXA = true},|#]
>
> [#|2006-01-06T06:45:07.396-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=13;|ProviderIntegrationMode
>
>
> null|#]
>
> [#|2006-01-06T06:45:07.415-0500|FINE|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=13;|parseToProperties:java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory,java.naming.provider.url=ldap://sun-ds-dev:389/dc=sun,dc=com
>
>
> delimited:, seperator:=|#]
>
> [#|2006-01-06T06:45:07.416-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=13;|PropertyValuePair
>
>
> : java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory,
> separator:=|#]
>
> [#|2006-01-06T06:45:07.416-0500|FINER|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=13;|Property
>
>
> : java.naming.factory.initial:com.sun.jndi.ldap.LdapCtxFactory|#]
>
> [#|2006-01-06T06:45:07.417-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=13;|PropertyValuePair
>
>
> : java.naming.provider.url=ldap://sun-ds-dev:389/dc=sun, separator:=|#]
>
> [#|2006-01-06T06:45:07.417-0500|FINER|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=13;|Property
>
>
> : java.naming.provider.url:ldap://sun-ds-dev:389/dc=sun|#]
>
> [#|2006-01-06T06:45:07.420-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=13;|PropertyValuePair
>
>
> : dc=com, separator:=|#]
>
> [#|2006-01-06T06:45:07.421-0500|FINER|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=13;|Property
>
>
> : dc:com|#]
>
> [#|2006-01-06T06:45:07.421-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=13;|Properties
>
>
> passed to InitialContext :: {dc=com,
> java.naming.provider.url=ldap://sun-ds-dev:389/dc=sun,
> java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory}|#]
>
> [#|2006-01-06T06:45:07.614-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=13;|Looking
>
>
> the JNDI name :cn=broker1NoXATopicCF,ou=static,ou=JAIDEEP_cf,ou=emq|#]
>
> [#|2006-01-06T06:45:07.709-0500|WARNING|sun-appserver-ee8.1|javax.enterprise.resource.resourceadapter|_ThreadID=13;|[LDAP:
>
>
> error code 32 - No Such Object]|#]
>
> [#|2006-01-06T06:45:07.779-0500|WARNING|sun-appserver-ee8.1|javax.enterprise.system.stream.err|_ThreadID=13;|java.io.NotSerializableException:
>
>
> com.sun.jndi.ldap.LdapCtx
>
>
>
>
>
> ********************************
> with \\ to escape coma (,) as separator
> ********************************
>
> [#|2006-01-06T07:59:05.069-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|setResourceAdapter
>
> com.sun.genericra.GenericJMSRA_at_83c4a934{ConnectionFactoryClassName =
> null},{QueueConnectionFactoryClassName =
> null},{TopicConnectionFactoryClassName =
> null},{XAConnectionFactoryClassName =
> null},{XAQueueConnectionFactoryClassName =
> null},{XATopicConnectionFactoryClassName = null},{QueueClassName =
> null},{TopicClassName = null},{ConnectionFactoryProperties =
> null},{JndiProperties =
> java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory,java.naming.provider.url=ldap://sun-ds-dev:389/dc=sun\\,dc=com},{ProviderIntegrationMode
>
> = jndi},{CommonSetterMethodName = null},{SupportsXA = true},|#]
>
> [#|2006-01-06T07:59:05.078-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|ProviderIntegrationMode
>
> null|#]
>
> [#|2006-01-06T07:59:05.099-0500|FINE|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|parseToProperties:java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory,java.naming.provider.url=ldap://sun-ds-dev:389/dc=sun\\,dc=com
>
> delimited:, seperator:=|#]
>
> [#|2006-01-06T07:59:05.100-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|PropertyValuePair
>
> : java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory,
> separator:=|#]
>
> [#|2006-01-06T07:59:05.101-0500|FINER|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|Property
>
> : java.naming.factory.initial:com.sun.jndi.ldap.LdapCtxFactory|#]
>
> [#|2006-01-06T07:59:05.101-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|PropertyValuePair
>
> : java.naming.provider.url=ldap://sun-ds-dev:389/dc=sun\\, separator:=|#]
>
> [#|2006-01-06T07:59:05.101-0500|FINER|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|Property
>
> : java.naming.provider.url:ldap://sun-ds-dev:389/dc=sun\\|#]
>
> [#|2006-01-06T07:59:05.104-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|PropertyValuePair
>
> : dc=com, separator:=|#]
> [#|2006-01-06T07:59:05.104-0500|FINER|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|Property
>
> : dc:com|#]
>
> [#|2006-01-06T07:59:05.105-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|Properties
>
> passed to InitialContext :: {dc=com,
> java.naming.provider.url=ldap://sun-ds-dev:389/dc=sun\\,
> java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory}|#]
>
> [#|2006-01-06T07:59:05.384-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|Looking
>
> the JNDI name :cn=broker1NoXATopicCF,ou=static,ou=JAIDEEP_cf,ou=emq|#]
>
> [#|2006-01-06T07:59:05.472-0500|WARNING|sun-appserver-ee8.1|javax.enterprise.resource.resourceadapter|_ThreadID=16;|[LDAP:
>
> error code 32 - No Such Object]|#]
>
> [#|2006-01-06T07:59:05.538-0500|WARNING|sun-appserver-ee8.1|javax.enterprise.system.stream.err|_ThreadID=16;|java.io.NotSerializableException:
>
> com.sun.jndi.ldap.LdapCtx
>
>
>
>
>
> ******************
> with \ to escape coma (,) as separator
> ******************
>
> [#|2006-01-06T08:07:25.100-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|setResourceAdapter
> com.sun.genericra.GenericJMSRA_at_4d840860{ConnectionFactoryClassName =
> null},{QueueConnectionFactoryClassName =
> null},{TopicConnectionFactoryClassName =
> null},{XAConnectionFactoryClassName =
> null},{XAQueueConnectionFactoryClassName =
> null},{XATopicConnectionFactoryClassName = null},{QueueClassName =
> null},{TopicClassName = null},{ConnectionFactoryProperties =
> null},{JndiProperties =
> java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory,java.naming.provider.url=ldap://sun-ds-dev:389/dc=sun\,dc=com},{ProviderIntegrationMode
> = jndi},{CommonSetterMethodName = null},{SupportsXA = true},|#]
>
> [#|2006-01-06T08:07:25.109-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|ProviderIntegrationMode
> null|#]
>
> [#|2006-01-06T08:07:25.127-0500|FINE|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|parseToProperties:java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory,java.naming.provider.url=ldap://sun-ds-dev:389/dc=sun\,dc=com
> delimited:, seperator:=|#]
>
> [#|2006-01-06T08:07:25.128-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|PropertyValuePair
> : java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory,
> separator:=|#]
>
> [#|2006-01-06T08:07:25.129-0500|FINER|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|Property
> : java.naming.factory.initial:com.sun.jndi.ldap.LdapCtxFactory|#]
>
> [#|2006-01-06T08:07:25.129-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|PropertyValuePair
> : java.naming.provider.url=ldap://sun-ds-dev:389/dc=sun\, separator:=|#]
>
> [#|2006-01-06T08:07:25.129-0500|FINER|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|Property
> : java.naming.provider.url:ldap://sun-ds-dev:389/dc=sun\|#]
>
> [#|2006-01-06T08:07:25.132-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|PropertyValuePair
> : dc=com, separator:=|#]
> [#|2006-01-06T08:07:25.132-0500|FINER|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|Property
> : dc:com|#]
>
> [#|2006-01-06T08:07:25.133-0500|FINEST|sun-appserver-ee8.1|com.sun.genericjmsra|_ThreadID=16;|Properties
> passed to InitialContext :: {dc=com,
> java.naming.provider.url=ldap://sun-ds-dev:389/dc=sun\,
> java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory}|#]
>
> [#|2006-01-06T08:07:25.160-0500|WARNING|sun-appserver-ee8.1|javax.enterprise.resource.resourceadapter|_ThreadID=16;|Invalid
> name: dc=sun\|#]
>
>
> Regards,
> Jaideep
> Binod wrote:
>
>> Jaideep Chhabra wrote:
>>
>>> Hi Binod,
>>> When we configure the genericjmsra
>>> (create-resource-adapter-config) we need to pass the JndiProperties
>>> separated by a coma(,).
>>> I wanted to check with you that is this separator configurable,
>>> i.e. can I change it, or do I need to change it in the code.
>>> Will this change impact anywhere else in the ra.
>>> I need it so that I can have the jndi url set to
>>> ldap://sun-ds-dev:389/dc=sun,dc=com
>>
>>
>>
>> Will you able to escape it?
>>
>> - Binod.
>>
>>> and the coma here makes the configuration break.
>>>
>>> Regards,
>>> Jaideep
>>