You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by DA <di...@pramati.com> on 2008/04/29 11:26:04 UTC
sending message from an external client
Hi all,
My application runs on jboss and i configured activewq for
messsaging.everything is working fine messaging r flowing fine.Now i want to
send message to this queue from an external client a main program.
i created the initialcontext with the properties from jboss
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
now when i did a lookup for connectionfatory it is returning me null. On
debugging it i found that it actually found the connectionfactory but in
NamingManager.getObjectInstance at
factory = getObjectFactoryFromReference(ref, f);
if (factory != null) {
return factory.getObjectInstance(ref, name, nameCtx,
environment);
}
it is returning null. Before going there, ref is holding the
connectionfactory instance.
i observed that factory is "org.jboss.util.naming.NonSerializableFactory"
in that factory.getObjectInstance it is looking for connectionfactoryName
in a map and simply returning null from there.
can any one tell me what is happening there and what is wrong in my code.
Thanks in advance.
DA
--
View this message in context: http://www.nabble.com/sending-message-from-an-external-client-tp16956671s2354p16956671.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: sending message from an external client
Posted by Luiz Mendes Almeida <lu...@gmail.com>.
Hi.
I think you can't get the jboss context using an external application.
My advice is to create a different context to connect to this queue.
I hope help you.
Dwight.
2008/4/29 DA <di...@pramati.com>:
>
> Hi all,
> My application runs on jboss and i configured activewq for
> messsaging.everything is working fine messaging r flowing fine.Now i want
> to
> send message to this queue from an external client a main program.
> i created the initialcontext with the properties from jboss
>
> java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
> java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
>
> now when i did a lookup for connectionfatory it is returning me null. On
> debugging it i found that it actually found the connectionfactory but in
> NamingManager.getObjectInstance at
>
> factory = getObjectFactoryFromReference(ref, f);
> if (factory != null) {
> return factory.getObjectInstance(ref, name, nameCtx,
> environment);
> }
>
> it is returning null. Before going there, ref is holding the
> connectionfactory instance.
>
> i observed that factory is "org.jboss.util.naming.NonSerializableFactory"
>
> in that factory.getObjectInstance it is looking for connectionfactoryName
> in a map and simply returning null from there.
>
> can any one tell me what is happening there and what is wrong in my code.
>
> Thanks in advance.
> DA
> --
> View this message in context:
> http://www.nabble.com/sending-message-from-an-external-client-tp16956671s2354p16956671.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>
--
Luiz Mendes Almeida
tel: +55 (13) 3113-3663
cel: +351 93 633 00 40
Re: sending message from an external client
Posted by DA <di...@pramati.com>.
thanks joe now my code has become generic and with this configuration
Activemq messaging is working fine. i want the same for jboss messaging also
where can i find it.
i tried with the following configuration
java.naming.factory.initial = org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=jnp://localhost:1099
connectionFactoryNames=MyQueueConnectionFactory
it is not working. i got the same problem connectionfactory is comming as
null. where can i find sample jndi properties file or same kind of
configurations using spring.
Thanks,
DA.
ttmdev wrote:
>
> Yup, referencing ActiveMQ objects from your code nails your application to
> ActiveMQ and makes it non-portable. It defeats the purpose of using the
> JMS. If you're running an external (standalone) client, Spring would be a
> good way to go, but if you want to still use the JNDI, then simply create
> a jndi.properties file and put it in your CLASSPATH. You can then get the
> initial context and a particular factory as follows.
>
> Context ctx = new InitialContext();
> ConnectionFactory factory = (javax.jms.ConnectionFactory)
> ctx.lookup("localConnectionFactory");
>
> You could also reference some other unique *.properties files and load
> that one as follows
>
> Properties props = new Properties();
> ClassLoader myLoader = this.getClass().getClassLoader();
> props.load(myLoader.getResourceAsStream("amq.properties"));
> javax.naming.Context ctx = new InitialContext(props);
>
> See the attached sample jndi.properties file
>
> http://www.nabble.com/file/p16959605/jndi.properties jndi.properties
>
> Hope this helps.
>
> Joe
> Goto www.ttmsolutions.com for a free ActiveMQ user guide
>
>
>
> DA wrote:
>>
>> i have created ActiveMQConnectionFactory and it is working .But i want
>> the code to be generic so that even if i change messaging from activemq
>> to some other thing my code should work fine with out any changes.
>>
>>
>> James.Strachan wrote:
>>>
>>> From an external client its often easier to just create an
>>> ActiveMQConnectionFactory rather than use JNDI. Or use Spring
>>>
>>> 2008/4/29 DA <di...@pramati.com>:
>>>>
>>>> Hi all,
>>>> My application runs on jboss and i configured activewq for
>>>> messsaging.everything is working fine messaging r flowing fine.Now i
>>>> want to
>>>> send message to this queue from an external client a main program.
>>>> i created the initialcontext with the properties from jboss
>>>>
>>>> java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
>>>> java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
>>>>
>>>> now when i did a lookup for connectionfatory it is returning me null.
>>>> On
>>>> debugging it i found that it actually found the connectionfactory but
>>>> in
>>>> NamingManager.getObjectInstance at
>>>>
>>>> factory = getObjectFactoryFromReference(ref, f);
>>>> if (factory != null) {
>>>> return factory.getObjectInstance(ref, name,
>>>> nameCtx,
>>>> environment);
>>>> }
>>>>
>>>> it is returning null. Before going there, ref is holding the
>>>> connectionfactory instance.
>>>>
>>>> i observed that factory is
>>>> "org.jboss.util.naming.NonSerializableFactory"
>>>>
>>>> in that factory.getObjectInstance it is looking for
>>>> connectionfactoryName
>>>> in a map and simply returning null from there.
>>>>
>>>> can any one tell me what is happening there and what is wrong in my
>>>> code.
>>>>
>>>> Thanks in advance.
>>>> DA
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/sending-message-from-an-external-client-tp16956671s2354p16956671.html
>>>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> James
>>> -------
>>> http://macstrac.blogspot.com/
>>>
>>> Open Source Integration
>>> http://open.iona.com
>>>
>>>
>>
>>
>
>
--
View this message in context: http://www.nabble.com/sending-message-from-an-external-client-tp16956671s2354p16961293.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: sending message from an external client
Posted by ttmdev <jo...@ttmsolutions.com>.
Yup, referencing ActiveMQ objects from your code nails your application to
ActiveMQ and makes it non-portable. It defeats the purpose of using the JMS.
If you're running an external (standalone) client, Spring would be a good
way to go, but if you want to still use the JNDI, then simply create a
jndi.properties file and put it in your CLASSPATH. You can then get the
initial context and a particular factory as follows.
Context ctx = new InitialContext();
ConnectionFactory factory = (javax.jms.ConnectionFactory)
ctx.lookup("localConnectionFactory");
You could also reference some other unique *.properties files and load that
one as follows
Properties props = new Properties();
ClassLoader myLoader = this.getClass().getClassLoader();
props.load(myLoader.getResourceAsStream("amq.properties"));
javax.naming.Context ctx = new InitialContext(props);
See the attached sample jndi.properties file
http://www.nabble.com/file/p16959605/jndi.properties jndi.properties
Hope this helps.
Joe
Goto www.ttmsolutions.com for a free ActiveMQ user guide
DA wrote:
>
> i have created ActiveMQConnectionFactory and it is working .But i want
> the code to be generic so that even if i change messaging from activemq to
> some other thing my code should work fine with out any changes.
>
>
> James.Strachan wrote:
>>
>> From an external client its often easier to just create an
>> ActiveMQConnectionFactory rather than use JNDI. Or use Spring
>>
>> 2008/4/29 DA <di...@pramati.com>:
>>>
>>> Hi all,
>>> My application runs on jboss and i configured activewq for
>>> messsaging.everything is working fine messaging r flowing fine.Now i
>>> want to
>>> send message to this queue from an external client a main program.
>>> i created the initialcontext with the properties from jboss
>>>
>>> java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
>>> java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
>>>
>>> now when i did a lookup for connectionfatory it is returning me null.
>>> On
>>> debugging it i found that it actually found the connectionfactory but
>>> in
>>> NamingManager.getObjectInstance at
>>>
>>> factory = getObjectFactoryFromReference(ref, f);
>>> if (factory != null) {
>>> return factory.getObjectInstance(ref, name, nameCtx,
>>> environment);
>>> }
>>>
>>> it is returning null. Before going there, ref is holding the
>>> connectionfactory instance.
>>>
>>> i observed that factory is
>>> "org.jboss.util.naming.NonSerializableFactory"
>>>
>>> in that factory.getObjectInstance it is looking for
>>> connectionfactoryName
>>> in a map and simply returning null from there.
>>>
>>> can any one tell me what is happening there and what is wrong in my
>>> code.
>>>
>>> Thanks in advance.
>>> DA
>>> --
>>> View this message in context:
>>> http://www.nabble.com/sending-message-from-an-external-client-tp16956671s2354p16956671.html
>>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> James
>> -------
>> http://macstrac.blogspot.com/
>>
>> Open Source Integration
>> http://open.iona.com
>>
>>
>
>
--
View this message in context: http://www.nabble.com/sending-message-from-an-external-client-tp16956671s2354p16959605.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: sending message from an external client
Posted by James Strachan <ja...@gmail.com>.
2008/4/29 DA <di...@pramati.com>:
>
> i have created ActiveMQConnectionFactory and it is working .But i want the
> code to be generic so that even if i change messaging from activemq to some
> other thing my code should work fine with out any changes.
Use Spring then?
--
James
-------
http://macstrac.blogspot.com/
Open Source Integration
http://open.iona.com
Re: sending message from an external client
Posted by DA <di...@pramati.com>.
i have created ActiveMQConnectionFactory and it is working .But i want the
code to be generic so that even if i change messaging from activemq to some
other thing my code should work fine with out any changes.
James.Strachan wrote:
>
> From an external client its often easier to just create an
> ActiveMQConnectionFactory rather than use JNDI. Or use Spring
>
> 2008/4/29 DA <di...@pramati.com>:
>>
>> Hi all,
>> My application runs on jboss and i configured activewq for
>> messsaging.everything is working fine messaging r flowing fine.Now i
>> want to
>> send message to this queue from an external client a main program.
>> i created the initialcontext with the properties from jboss
>>
>> java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
>> java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
>>
>> now when i did a lookup for connectionfatory it is returning me null. On
>> debugging it i found that it actually found the connectionfactory but in
>> NamingManager.getObjectInstance at
>>
>> factory = getObjectFactoryFromReference(ref, f);
>> if (factory != null) {
>> return factory.getObjectInstance(ref, name, nameCtx,
>> environment);
>> }
>>
>> it is returning null. Before going there, ref is holding the
>> connectionfactory instance.
>>
>> i observed that factory is
>> "org.jboss.util.naming.NonSerializableFactory"
>>
>> in that factory.getObjectInstance it is looking for
>> connectionfactoryName
>> in a map and simply returning null from there.
>>
>> can any one tell me what is happening there and what is wrong in my
>> code.
>>
>> Thanks in advance.
>> DA
>> --
>> View this message in context:
>> http://www.nabble.com/sending-message-from-an-external-client-tp16956671s2354p16956671.html
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
>>
>
>
>
> --
> James
> -------
> http://macstrac.blogspot.com/
>
> Open Source Integration
> http://open.iona.com
>
>
--
View this message in context: http://www.nabble.com/sending-message-from-an-external-client-tp16956671s2354p16958447.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: sending message from an external client
Posted by James Strachan <ja...@gmail.com>.
>From an external client its often easier to just create an
ActiveMQConnectionFactory rather than use JNDI. Or use Spring
2008/4/29 DA <di...@pramati.com>:
>
> Hi all,
> My application runs on jboss and i configured activewq for
> messsaging.everything is working fine messaging r flowing fine.Now i want to
> send message to this queue from an external client a main program.
> i created the initialcontext with the properties from jboss
>
> java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
> java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
>
> now when i did a lookup for connectionfatory it is returning me null. On
> debugging it i found that it actually found the connectionfactory but in
> NamingManager.getObjectInstance at
>
> factory = getObjectFactoryFromReference(ref, f);
> if (factory != null) {
> return factory.getObjectInstance(ref, name, nameCtx,
> environment);
> }
>
> it is returning null. Before going there, ref is holding the
> connectionfactory instance.
>
> i observed that factory is "org.jboss.util.naming.NonSerializableFactory"
>
> in that factory.getObjectInstance it is looking for connectionfactoryName
> in a map and simply returning null from there.
>
> can any one tell me what is happening there and what is wrong in my code.
>
> Thanks in advance.
> DA
> --
> View this message in context: http://www.nabble.com/sending-message-from-an-external-client-tp16956671s2354p16956671.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>
--
James
-------
http://macstrac.blogspot.com/
Open Source Integration
http://open.iona.com
Re: sending message from an external client
Posted by Luiz Mendes Almeida <lu...@gmail.com>.
Hi.
I think you can't get the jboss context using an external application.
My advice is to create a different context to connect to this queue.
I hope help you.
Dwight.
2008/4/29 DA <di...@pramati.com>:
>
> Hi all,
> My application runs on jboss and i configured activewq for
> messsaging.everything is working fine messaging r flowing fine.Now i want
> to
> send message to this queue from an external client a main program.
> i created the initialcontext with the properties from jboss
>
> java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
> java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
>
> now when i did a lookup for connectionfatory it is returning me null. On
> debugging it i found that it actually found the connectionfactory but in
> NamingManager.getObjectInstance at
>
> factory = getObjectFactoryFromReference(ref, f);
> if (factory != null) {
> return factory.getObjectInstance(ref, name, nameCtx,
> environment);
> }
>
> it is returning null. Before going there, ref is holding the
> connectionfactory instance.
>
> i observed that factory is "org.jboss.util.naming.NonSerializableFactory"
>
> in that factory.getObjectInstance it is looking for connectionfactoryName
> in a map and simply returning null from there.
>
> can any one tell me what is happening there and what is wrong in my code.
>
> Thanks in advance.
> DA
> --
> View this message in context:
> http://www.nabble.com/sending-message-from-an-external-client-tp16956671s2354p16956671.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>