|
View:
New views
10 Messages
—
Rating Filter:
Alert me
|
|
|
ObjectMessage in C/C++ActiveMQ Users-
I have a project coming up where we'll be using ActiveMQ as our JMS server between a Java application and a C/C++ application. I'd like to exchange ObjectMessages. Is there anything special (e.g. endian) that I need to be aware of? Does the C/C++ application have to have objects defined that are the equivalent of my Java objects? Thanks, Joshua Smith |
|
|
Re: ObjectMessage in C/C++ActiveMQ-CPP doesn't support ObjectMessages. If you're stuck sending
ObjectMessages from Java, probably your best bet would be to use a Camel message translator in the broker (http://activemq.apache.org/camel/message-translator.html ). Regards, Nate On Jul 6, 2008, at 6:44 PM, Joshua Smith wrote: > ActiveMQ Users- > > I have a project coming up where we'll be using ActiveMQ as our JMS > server > between a Java application and a C/C++ application. I'd like to > exchange > ObjectMessages. Is there anything special (e.g. endian) that I need > to be > aware of? Does the C/C++ application have to have objects defined > that are > the equivalent of my Java objects? > > > Thanks, > Joshua Smith |
|
|
Re: ObjectMessage in C/C++Thanks Nathan. I went and looked at the link. Could you describe how this
works a little more? Is the C++ program doing something different or am I configuring ActiveMQ to do something different when the client is a C++ application? How does Camel fit into the picture? Thanks, Joshua Smith On 7/6/08, Nathan Mittler <nathan.mittler@...> wrote: > > ActiveMQ-CPP doesn't support ObjectMessages. If you're stuck sending > ObjectMessages from Java, probably your best bet would be to use a Camel > message translator in the broker ( > http://activemq.apache.org/camel/message-translator.html). > > Regards, > Nate > > On Jul 6, 2008, at 6:44 PM, Joshua Smith wrote: > > ActiveMQ Users- >> >> I have a project coming up where we'll be using ActiveMQ as our JMS server >> between a Java application and a C/C++ application. I'd like to exchange >> ObjectMessages. Is there anything special (e.g. endian) that I need to be >> aware of? Does the C/C++ application have to have objects defined that are >> the equivalent of my Java objects? >> >> >> Thanks, >> Joshua Smith >> > > |
|
|
Re: ObjectMessage in C/C++Joshua,
The C++ application wouldn't consume a JMS ObjectMessage; rather, it would have the message transformed to something it can consume, say XML. This transformation process is where Apache Camel comes in. The ActiveMQ 5.x broker can embed Camel components that will allow you to define a custom transformer that receives on one messaging channel, transforms the message, and then sends out the new message to your C++ application on another channel. This link shows the basics for configuring Camel in your ActiveMQ broker: http://activemq.apache.org/enterprise-integration-patterns.html And this should help you get started with Camel: http://activemq.apache.org/camel/getting-started.html Regards, Nate On Jul 6, 2008, at 8:53 PM, Joshua Smith wrote: > Thanks Nathan. I went and looked at the link. Could you describe how > this > works a little more? Is the C++ program doing something different or > am I > configuring ActiveMQ to do something different when the client is a C > ++ > application? How does Camel fit into the picture? > > Thanks, > Joshua Smith > |
|
|
Re: ObjectMessage in C/C++Thanks again Nathan. I'll give those references a look.
Joshua Smith On 7/7/08, Nathan Mittler <nathan.mittler@...> wrote: > > Joshua, > The C++ application wouldn't consume a JMS ObjectMessage; rather, it would > have the message transformed to something it can consume, say XML. This > transformation process is where Apache Camel comes in. The ActiveMQ 5.x > broker can embed Camel components that will allow you to define a custom > transformer that receives on one messaging channel, transforms the message, > and then sends out the new message to your C++ application on another > channel. > > This link shows the basics for configuring Camel in your ActiveMQ broker: > http://activemq.apache.org/enterprise-integration-patterns.html > > And this should help you get started with Camel: > http://activemq.apache.org/camel/getting-started.html > > Regards, > Nate > > On Jul 6, 2008, at 8:53 PM, Joshua Smith wrote: > > Thanks Nathan. I went and looked at the link. Could you describe how this >> works a little more? Is the C++ program doing something different or am I >> configuring ActiveMQ to do something different when the client is a C++ >> application? How does Camel fit into the picture? >> >> Thanks, >> Joshua Smith >> >> |
|
|
Re: ObjectMessage in C/C++Hi Nate, I am also in the same situation with Joshua and is currently considering ActiveMQ-CPP for my C++ clients to be able to talk to my Java components. I am currently using version 2.2.6 of ActiveMQ-CPP, are there any updates if ObjectMessages is now supported?
Also, say my serialized object is implemented below,
On my C++ code, say I have created an equivalent Subscriber class, can't I just cast the returned object of getObject() into Subscriber?
Thanks,
Pat
|
|
|
Re: ObjectMessage in C/C++On Wed, 2009-11-04 at 19:20 -0800, thinkbox wrote:
> Hi Nate, I am also in the same situation with Joshua and is currently > considering ActiveMQ-CPP for my C++ clients to be able to talk to my Java > components. I am currently using version 2.2.6 of ActiveMQ-CPP, are there > any updates if ObjectMessages is now supported? > ActiveMQ C++ cannot support ObjectMessage. The serialized version of a Java object is not readable by the C++ code, and can't be converted into a C++ type. You need to perform some sort of transformation on the Object before sending to a C++ client, such as converting it to XML and sending it as a TextMessage, then your C++ code can turn it back into a C++ object of your own design or just parse the XML for the data you are after. A search for C++ XML Binding on Google will give you some insights into how to accomplish that. > Also, say my serialized object is implemented below, > > public class Subscriber implements Serializable { > private String name; > private int age; > > ... > > //setters and getters method follows > } > > > On my C++ code, say I have created an equivalent Subscriber class, can't I > just cast the returned object of getObject() into Subscriber? > > Thanks, > Pat > > > nmittler wrote: > > > > ActiveMQ-CPP doesn't support ObjectMessages. If you're stuck sending > > ObjectMessages from Java, probably your best bet would be to use a > > Camel message translator in the broker > > (http://activemq.apache.org/camel/message-translator.html > > ). > > > > Regards, > > Nate > > > > On Jul 6, 2008, at 6:44 PM, Joshua Smith wrote: > > > >> ActiveMQ Users- > >> > >> I have a project coming up where we'll be using ActiveMQ as our JMS > >> server > >> between a Java application and a C/C++ application. I'd like to > >> exchange > >> ObjectMessages. Is there anything special (e.g. endian) that I need > >> to be > >> aware of? Does the C/C++ application have to have objects defined > >> that are > >> the equivalent of my Java objects? > >> > >> > >> Thanks, > >> Joshua Smith > > > > > > > Tim Bish http://fusesource.com http://timbish.blogspot.com/ |
|
|
Re: ObjectMessage in C/C++I see, that makes sense, I get the point.
Thanks Tim! - Pat X.S. Just a side comment. Having said that ActiveMQ C++ cannot support ObjectMessage -- can we assume that ObjectMessage is reserved for future use? Or are we looking at the CMS version of ObjectMessage the same is it is implemented now?
|
|
|
Re: ObjectMessage in C/C++On Thu, 2009-11-05 at 22:57 -0800, thinkbox wrote:
> I see, that makes sense, I get the point. > Thanks Tim! > > - Pat > > X.S. Just a side comment. Having said that ActiveMQ C++ cannot support > ObjectMessage -- can we assume that ObjectMessage is reserved for future > use? Or are we looking at the CMS version of ObjectMessage the same is it is > implemented now? > The ObjectMessage type in CMS is simply a placeholder which allows us to return your client an ObjectMessage instnace when that type of message is received instead of crashing or silently throwing out the message. This allows you to at least access the the Message Properties and know that it was received. Regards Tim. > > > Timothy Bish wrote: > > > > On Wed, 2009-11-04 at 19:20 -0800, thinkbox wrote: > >> Hi Nate, I am also in the same situation with Joshua and is currently > >> considering ActiveMQ-CPP for my C++ clients to be able to talk to my Java > >> components. I am currently using version 2.2.6 of ActiveMQ-CPP, are there > >> any updates if ObjectMessages is now supported? > >> > > > > ActiveMQ C++ cannot support ObjectMessage. The serialized version of a > > Java object is not readable by the C++ code, and can't be converted into > > a C++ type. You need to perform some sort of transformation on the > > Object before sending to a C++ client, such as converting it to XML and > > sending it as a TextMessage, then your C++ code can turn it back into a > > C++ object of your own design or just parse the XML for the data you are > > after. A search for C++ XML Binding on Google will give you some > > insights into how to accomplish that. > > > >> Also, say my serialized object is implemented below, > >> > >> public class Subscriber implements Serializable { > >> private String name; > >> private int age; > >> > >> ... > >> > >> //setters and getters method follows > >> } > >> > >> > >> On my C++ code, say I have created an equivalent Subscriber class, can't > >> I > >> just cast the returned object of getObject() into Subscriber? > >> > >> Thanks, > >> Pat > >> > >> > >> nmittler wrote: > >> > > >> > ActiveMQ-CPP doesn't support ObjectMessages. If you're stuck sending > >> > ObjectMessages from Java, probably your best bet would be to use a > >> > Camel message translator in the broker > >> > (http://activemq.apache.org/camel/message-translator.html > >> > ). > >> > > >> > Regards, > >> > Nate > >> > > >> > On Jul 6, 2008, at 6:44 PM, Joshua Smith wrote: > >> > > >> >> ActiveMQ Users- > >> >> > >> >> I have a project coming up where we'll be using ActiveMQ as our JMS > >> >> server > >> >> between a Java application and a C/C++ application. I'd like to > >> >> exchange > >> >> ObjectMessages. Is there anything special (e.g. endian) that I need > >> >> to be > >> >> aware of? Does the C/C++ application have to have objects defined > >> >> that are > >> >> the equivalent of my Java objects? > >> >> > >> >> > >> >> Thanks, > >> >> Joshua Smith > >> > > >> > > >> > > >> > > -- > > Tim Bish > > http://fusesource.com > > http://timbish.blogspot.com/ > > > > > > > > > > > |
|
|
Re: ObjectMessage in C/C++I see..
Thanks a lot Tim!
|
| Free embeddable forum powered by Nabble | Forum Help |