I single patch would work too, it does not really matter. On Sat, Apr 5, 2008 at 2:28 AM, Tom Purcell <[EMAIL PROTECTED]> wrote:
> > Guillaume > "i suppose the 201 support should go in the DefaultHttpProviderMarshaler. > Does RestProviderMarshaler inherit the DefaultHttpProviderMarshaler ?" > > Yes it does. So, just to be clear, put the 201 in > DefaultHttpProviderMarshaler and add a new RestProviderMarshaler, that > extends DefaultHttpProviderMarshaler, that has the contentExpression > stuff. > > "Well, I suppose we should modify both at the same time if you have the > patch > for both." > > I'll attach a diff for each ???XPathExpression and > DefaultHttpProviderMarshaler and a copy of RestProviderMarshaler and and a > config example to the Jira. > > Thanks > Tom > > > gnodet wrote: > > > > On Fri, Apr 4, 2008 at 3:31 PM, Tom Purcell > > <[EMAIL PROTECTED]> > > wrote: > > > >> > >> Guillaume > >> > >> I'll do that but I have a couple of questions. First the use of the new > >> JAXPXPathExpression would be be reliant on the ability to configure the > >> contentExpression provided by the RestProviderMarshaler. In light of > our > >> other discussion about the handling of HttpStatus.SC_Created (201) > should > >> that configuration be rolled into DefaultHttpProviderMarshaler or > should > >> there be a separate RestProviderMarshaler? > > > > > > i suppose the 201 support should go in the DefaultHttpProviderMarshaler. > > Does the > > RestProviderMarshaler inherit the DefaultHttpProviderMarshaler ? If not, > > it > > may be worth > > trying to refactor it a bit so that we can override the needed methods. > > > > > >> > >> > >> Second, there is similar code in the JaxenXPathExpression class would > you > >> like the diff for that as well? > > > > > > Well, I suppose we should modify both at the same time if you have the > > patch > > for both. > > > >> > >> > >> Thanks > >> Tom > >> > >> > >> gnodet wrote: > >> > > >> > If you have a svn diff, please attach it to a JIRA whenever you have > >> some > >> > time and i'll take a close look, but it sounds like a reasonable > >> > enhancement > >> > to the JAXPXPathExpression. > >> > > >> > On Thu, Apr 3, 2008 at 9:33 PM, Tom Purcell > >> > <[EMAIL PROTECTED]> > >> > wrote: > >> > > >> >> > >> >> Guillaume > >> >> > >> >> I've made some progress. This is what I did. > >> >> > >> >> First, I switched to JAXP instead of Jaxen. The ONLY reason for this > >> is > >> >> I'm > >> >> on a corporate network and they will not allow access to any URL > with > >> the > >> >> "jaxen" in it thus making research difficult. (not your problem, > just > >> >> venting). > >> >> > >> >> I understood what you were saying about using a SourceTransformer > >> instead > >> >> of > >> >> toString() but the problem is that by the time my getContentToSend() > >> gets > >> >> the result of the XPath evaluation it is already a String with the > XML > >> >> tags > >> >> stripped out. > >> >> > >> >> In the SMX JAXPXPathExpression class the evaluateXPath(Object > object) > >> >> method > >> >> calls the javax.xml.xpath.XPathExpression evaluate(object) method. > >> There > >> >> are > >> >> four implementations of that method in XPathExpression. The one > being > >> >> called > >> >> in the SMX JAXPXPathExpression class returns a String. This String > >> >> contains > >> >> the VALUEs only, not the tags. This is great when you need a value > to > >> >> build > >> >> a URL but not when you need the actual XML. > >> >> > >> >> I need the NodeSet. Another version of the XPathExpression evaluate > >> >> method, > >> >> evaluate(object, returnType), allows you to control the return type > >> but > >> >> the > >> >> SMX JAXPXPathExpression does not expose a way to call it. I went > into > >> the > >> >> SMX JAXPXPathExpression class and did the following: > >> >> > >> >> Changed: > >> >> protected Object evaluateXPath(Object object) throws > >> >> XPathExpressionException > >> >> To: > >> >> protected Object evaluateXPath(Object object, QName returnType) > throws > >> >> XPathExpressionException > >> >> > >> >> Added: > >> >> public Object evaluate(MessageExchange exchange, NormalizedMessage > >> >> message, > >> >> QName returnType) throws MessagingException > >> >> > >> >> Changed: > >> >> public Object evaluate(MessageExchange exchange, NormalizedMessage > >> >> message) > >> >> throws MessagingException > >> >> To call the new version above. It passes in > >> XPathConRestProviderMarshaler > >> >> stants.STRING as the > >> >> QName to provide backward compatibility. > >> >> > >> >> In my new RestProviderMarshaler: > >> >> protected String getContentToSend(MessageExchange exchange, > >> >> NormalizedMessage inMsg) throws Exception { > >> >> String content = null; > >> >> > >> >> if (contentExpression != null) { > >> >> logger.debug("*** Evaluate toString: " + > >> >> contentExpression.evaluate(exchange, inMsg)); > >> >> Node node = (Node)contentExpression.evaluate(exchange, inMsg, > >> >> XPathConstants.NODE); > >> >> content = transformer.toString(new DOMSource(node)); > >> >> logger.debug("*** Content toString: " + content); > >> >> } > >> >> > >> >> if (content == null) { > >> >> throw new IllegalStateException("Unable to find Content > for > >> >> exchange"); > >> >> } > >> >> return content; > >> >> } > >> >> > >> >> NOTE: > >> >> I have two calls to contentExpression.evaluate() method in > >> >> JAXPXPathExpression. The first is just in the debug and is there to > >> >> demonstrate the backward compatibility call. This is what it > produces > >> in > >> >> the > >> >> log (No XML Tags): > >> >> > >> >> 14:21:31,263 - DEBUG - RestProviderMarshaler - *** Evaluate > >> >> toString: ServerAsset This is a Test ServerAsset, created from > >> >> TestAssetPersistenceTwo. SGNS-0202 true true REDHAT LINUX > >> >> testserverassetc092803e-f2bd-9cb4-1f34-1da6f42053f1 sgns.net OS64 > >> 5.0.1 > >> >> 001 > >> >> 2048 2 > >> >> > >> >> With the call to the new version > (contentExpression.evaluate(exchange, > >> >> inMsg, XPathConstants.NODE)) produces this (A nice healthy chunk of > >> XML): > >> >> > >> >> 14:21:31,268 - DEBUG - RestProviderMarshaler - *** Content > >> >> toString: <?xml version="1.0" encoding="UTF-8"?><asset > >> >> name="TestServerAsset1207250490590"> > >> <class_type>ServerAsset</class_type> > >> >> <description>This is a Test ServerAsset, created from > >> >> TestAssetPersistenceTwo.</description> > >> >> <serial_number>SGNS-0202</serial_number> <enabled>true</enabled> > >> >> <managed>true</managed> <category > >> >> guid="42E213B8-3F31-E288-05A7-7D855CF32329" value="Default"/> <type > >> >> guid="30E6FD81-2D8E-B45B-CA53-703ADEDA3BDB" value="Default"/> <state > >> >> guid="26BC358E-9F90-FE7F-5199-01DB9FBB72FE" value="Default"/> > >> <mfgName/> > >> >> <os>REDHAT LINUX</os> > >> >> > >> > <host_name>testserverassetc092803e-f2bd-9cb4-1f34-1da6f42053f1</host_name> > >> >> <domain_name>sgns.net</domain_name> <platform>OS64</platform> > >> >> <os_version>5.0.1</os_version> <os_patch_level>001</os_patch_level> > >> >> <memory>2048</memory> <cpus>2</cpus> </asset> > >> >> > >> >> I'm not out of the woods yet. My POST is getting to the webapp and > the > >> >> webapp is updating the database but things fall apart on the > response. > >> >> I'm > >> >> not certain at this point whether its an issue with the wepapp's > >> response > >> >> or > >> >> SMX's handling it or a little of both. I'll let you know what I find > >> out. > >> >> > >> >> On the JAXPXPathExpression code, if there is another approach you > >> think > >> I > >> >> should take or you'd like to get the code let me know. > >> >> > >> >> Thanks > >> >> Tom > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> Tom Purcell wrote: > >> >> > > >> >> > Guillaume > >> >> > > >> >> > Thabnks for the input. Responses inline > >> >> > > >> >> > gnodet wrote: > >> >> >> > >> >> >> Have you tried using the JaxenXPathExpression instead of the > >> >> >> JaxenStringXPathExpression ? > >> >> >> > >> >> >> Yes, I got the same result. > >> >> >> > >> >> >> Also, I think you need to change the getContentToSend() method > >> because > >> >> >> using > >> >> >> toString() on the result won't work. Try using the > >> >> >> org.apache.servicemix.jbi.jaxp.*SourceTransformer* to convert the > >> DOM > >> >> >> node > >> >> >> to a String instead. > >> >> >> > >> >> >> Okay, I'll play with this but the call to > >> contentExpression.evaluate() > >> >> in > >> >> >> getContentToSend() returns a String object. At any rate I'll give > >> it > >> a > >> >> >> shot and let you know how it goes. > >> >> >> > >> >> >> Thanks > >> >> >> Tom > >> >> >> > >> >> >> On Wed, Apr 2, 2008 at 11:27 PM, Tom Purcell > >> >> >> <[EMAIL PROTECTED]> > >> >> >> wrote: > >> >> >> > >> >> >>> > >> >> >>> Guillaume > >> >> >>> > >> >> >>> Below is all of what I'm doing. Notice in the logs at the bottom > >> that > >> >> >>> what > >> >> >>> comes in on the NM is of type DOMSource but the object returned > by > >> >> the > >> >> >>> contentExpression.evaluate() method is of type String. I think > it > >> >> want > >> >> I > >> >> >>> want is for that to be a DOMSource too. I also see the "Content > is > >> >> not > >> >> >>> allowed in prolog" meesage but I think that is caused by the > fact > >> >> that > >> >> >>> my > >> >> >>> content is just the values and not the XML. > >> >> >>> > >> >> >>> Here's the xbean config: > >> >> >>> > >> >> >>> <http:provider service="wile:wileRestService" > >> >> >>> interfaceName="wileCreate" > >> >> >>> endpoint="wileRestCreate" > >> >> >>> marshaler="#createMarshaler"/> > >> >> >>> > >> >> >>> <bean id="createMarshaler" > >> >> class="jbi.marshal.RestProviderMarshaler"> > >> >> >>> <property name="locationURIExpression"> > >> >> >>> <bean > >> >> >>> > >> class="org.apache.servicemix.expression.JaxenStringXPathExpression"> > >> >> >>> <constructor-arg > >> >> >>> value="concat(' > >> >> >>> http://localhost:8080/wile-www/assetmanagement/assetservice/ > >> >> >>> ',/assetRequest/perspective)"/> > >> >> >>> </bean> > >> >> >>> </property> > >> >> >>> <property name="method" > >> >> >>> value="POST"/> > >> >> >>> <property name="contentType" > >> >> >>> value="application/x-www-form-urlencoded"/> > >> >> >>> <property name="contentExpression"> > >> >> >>> <bean > >> >> >>> > >> class="org.apache.servicemix.expression.JaxenStringXPathExpression"> > >> >> >>> <constructor-arg value="//asset"/> > >> >> >>> </bean> > >> >> >>> </property> > >> >> >>> </bean> > >> >> >>> </pre> > >> >> >>> > >> >> >>> In my RestProviderMarshaler class I added a property for > >> >> >>> contentExpression > >> >> >>> and replaced the createRequest method. Here are the relevant > >> methods: > >> >> >>> > >> >> >>> public void createRequest(MessageExchange exchange, > >> >> NormalizedMessage > >> >> >>> inMsg, SmxHttpExchange httpExchange) throws Exception { > >> >> >>> logger.debug("*** Before CREATE MessageExchange: " + > >> >> exchange); > >> >> >>> logger.debug("*** NM In Content: " + inMsg.getContent()); > >> >> >>> logger.debug("*** LocationURI: " + > getLocationUri(exchange, > >> >> >>> inMsg)); > >> >> >>> > >> >> >>> httpExchange.setURL(getLocationUri(exchange, inMsg)); > >> >> >>> httpExchange.addRequestHeader(HttpHeaders.HOST_BUFFER, > new > >> >> >>> ByteArrayBuffer(new URI(getLocationUri(exchange, > >> inMsg)).getHost())); > >> >> >>> httpExchange.setMethod(getMethod(exchange, inMsg)); > >> >> >>> httpExchange.setRequestHeader(HttpHeaders.CONTENT_TYPE, > >> >> >>> getContentType(exchange, inMsg)); > >> >> >>> > >> >> >>> if (getHeaders() != null) { > >> >> >>> for (Map.Entry<String, String> e : > >> >> getHeaders().entrySet()) > >> >> { > >> >> >>> httpExchange.setRequestHeader(e.getKey(), > >> >> e.getValue()); > >> >> >>> } > >> >> >>> } > >> >> >>> > >> >> >>> String contentToSend = getContentToSend(exchange, inMsg); > >> >> >>> logger.debug("*** Content: " + contentToSend); > >> >> >>> > >> >> >>> if (contentToSend != null) { > >> >> >>> httpExchange.setRequestContent(new > >> >> >>> ByteArrayBuffer(contentToSend.getBytes())); > >> >> >>> } > >> >> >>> } > >> >> >>> > >> >> >>> protected String getContentToSend(MessageExchange exchange, > >> >> >>> NormalizedMessage inMsg) throws Exception { > >> >> >>> String content = null; > >> >> >>> if (contentExpression != null) { > >> >> >>> Object o = contentExpression.evaluate(exchange, > inMsg); > >> >> >>> logger.debug("*** Content Object Type: " + > >> o.getClass()); > >> >> >>> content = (o != null) ? o.toString() : null; > >> >> >>> } > >> >> >>> if (content == null) { > >> >> >>> throw new IllegalStateException("Unable to find > Content > >> >> for > >> >> >>> exchange"); > >> >> >>> } > >> >> >>> return content; > >> >> >>> } > >> >> >>> > >> >> >>> Here is what I see from the debugs: > >> >> >>> > >> >> >>> 16:18:59,407 - DEBUG - RestProviderMarshaler - *** > Before > >> >> >>> CREATE > >> >> >>> MessageExchange: InOut[ > >> >> >>> id: ID:127.0.0.2-11910ec49ca-3:4 > >> >> >>> status: Active > >> >> >>> role: provider > >> >> >>> service: > >> >> >>> > >> >> > >> {http://www.sungard.com/wile}wileRestService<http://www.sungard.com/wile%7DwileRestService> > <http://www.sungard.com/wile%7DwileRestService> > >> <http://www.sungard.com/wile%7DwileRestService> > >> >> <http://www.sungard.com/wile%7DwileRestService> > >> >> >>> endpoint: wileRestCreate > >> >> >>> in: <?xml version="1.0" > >> >> >>> > >> >> > encoding="UTF-8"?><assetRequest><perspective>asset</perspective><asset > >> >> >>> name="TestAsset"> <class_type>BigAsset</class_type> > >> <description>This > >> >> is > >> >> >>> a > >> >> >>> Test Asset</description> <serial_number>12345</serial_number> > >> >> >>> <enabled>true</enabled> <category guid="67890" value="Default"/> > >> >> <type > >> >> >>> guid="09876" value="Default"/> <state guid="54321" > >> value="Default"/> > >> >> >>> </asset> </assetRequest> > >> >> >>> ] > >> >> >>> 16:18:59,408 - DEBUG - RestProviderMarshaler - *** NM > In > >> >> >>> Content: > >> >> >>> [EMAIL PROTECTED] > >> >> >>> 16:18:59,408 - DEBUG - RestProviderMarshaler - *** > >> >> LocationURI: > >> >> >>> > http://localhost:8080/wile-www/assetmanagement/assetservice/asset > >> >> >>> 16:18:59,409< > >> >> > >> > http://localhost:8080/wile-www/assetmanagement/assetservice/asset16:18:59,409 > >> >> >- > >> >> >>> DEBUG - RestProviderMarshaler - *** Content Object > >> >> >>> Type: class java.lang.String > >> >> >>> 16:18:59,409 - DEBUG - RestProviderMarshaler - *** > >> Content: > >> >> >>> BigAsset This is a Test Asset 12345 true > >> >> >>> 16:18:59,446 - DEBUG - DeliveryChannelImpl - Send > >> >> >>> ID:127.0.0.2-11910ec49ca-3:4 in DeliveryChannel{servicemix-http} > >> >> >>> [Fatal Error] :1:1: Content is not allowed in prolog. > >> >> >>> 16:18:59,451 - TRACE - DeliveryChannelImpl - Sent: > >> InOut[ > >> >> >>> id: ID:127.0.0.2-11910ec49ca-3:4 > >> >> >>> status: Active > >> >> >>> role: provider > >> >> >>> service: > >> >> >>> > >> >> > >> {http://www.sungard.com/wile}wileRestService<http://www.sungard.com/wile%7DwileRestService> > <http://www.sungard.com/wile%7DwileRestService> > >> <http://www.sungard.com/wile%7DwileRestService> > >> >> <http://www.sungard.com/wile%7DwileRestService> > >> >> >>> endpoint: wileRestCreate > >> >> >>> in: <?xml version="1.0" > >> >> >>> > >> >> > encoding="UTF-8"?><assetRequest><perspective>asset</perspective><asset > >> >> >>> name="TestAsset"> <class_type>BigAsset</class_type> > >> <description>This > >> >> is > >> >> >>> a > >> >> >>> Test Asset</description> <serial_number>12345</serial_number> > >> >> >>> <enabled>true</enabled> <category guid="67890" value="Default"/> > >> >> <type > >> >> >>> guid="09876" value="Default"/> <state guid="54321" > >> value="Default"/> > >> >> >>> </asset> </assetRequest> > >> >> >>> fault: Unable to display: org.xml.sax.SAXParseException: > Content > >> is > >> >> not > >> >> >>> allowed in prolog. > >> >> >>> ] > >> >> >>> 16:18:59,454 - DEBUG - SedaFlow - Called > >> Flow > >> >> send > >> >> >>> > >> >> >>> Thanks > >> >> >>> Tom > >> >> >>> > >> >> >>> > >> >> >>> gnodet wrote: > >> >> >>> > > >> >> >>> > I suppose the creation of the content does not support writing > >> an > >> >> xml > >> >> >>> > element and maybe use toString() or something like that to > >> create > >> >> the > >> >> >>> > content of the request. Could you paste the endpoint > definition > >> >> and > >> >> >>> > snippet > >> >> >>> > of code, I'm not sure to fully understand your configuration. > >> >> >>> > I think if you use a marshaler, you can really do anything you > >> >> need. > >> >> >>> I'm > >> >> >>> > sure we could come with something reusable using an expression > >> for > >> >> the > >> >> >>> > URL, > >> >> >>> > the method and the content. > >> >> >>> > > >> >> >>> > On Wed, Apr 2, 2008 at 2:33 PM, Tom Purcell > >> >> >>> > <[EMAIL PROTECTED]> > >> >> >>> > wrote: > >> >> >>> > > >> >> >>> >> > >> >> >>> >> Guillaume > >> >> >>> >> > >> >> >>> >> The message gets sent to the correct URI but the issue is the > >> >> content > >> >> >>> of > >> >> >>> >> the > >> >> >>> >> message. I need to send the XML (<foo>bar</foo>) but what > gets > >> >> >>> returned > >> >> >>> >> by > >> >> >>> >> contentExpression.evaluate(exchange, inMsg), subsequently > sent > >> to > >> >> the > >> >> >>> >> RESTful service, is just the values (bar). > >> >> >>> >> > >> >> >>> >> At this point I guess its really a Jaxen question. Can you > get > >> it > >> >> to > >> >> >>> >> return > >> >> >>> >> the XML instead of just the values? Otherwise some other > >> parsing > >> >> >>> strategy > >> >> >>> >> is > >> >> >>> >> needed. However, I really liked the idea of just defining an > >> XPath > >> >> >>> >> expression on the endpoint. It seems it would make the > >> marshaler > >> >> >>> pretty > >> >> >>> >> flexible. > >> >> >>> >> > >> >> >>> >> Thanks > >> >> >>> >> Tom > >> >> >>> >> > >> >> >>> >> > >> >> >>> >> > >> >> >>> >> gnodet wrote: > >> >> >>> >> > > >> >> >>> >> > Well, it sounds realy good. > >> >> >>> >> > What exactly does not work when using POST with your > >> marshaler > >> ? > >> >> >>> >> > > >> >> >>> >> > On Wed, Apr 2, 2008 at 12:00 AM, Tom Purcell > >> >> >>> >> > <[EMAIL PROTECTED]> > >> >> >>> >> > wrote: > >> >> >>> >> > > >> >> >>> >> >> > >> >> >>> >> >> Guillaume > >> >> >>> >> >> > >> >> >>> >> >> Okay, I'm new to REST so I may be missing something there > >> too > >> >> but > >> >> >>> this > >> >> >>> >> is > >> >> >>> >> >> where I'm at. SMX will receive a JMS message with an XML > >> >> payload. > >> >> >>> The > >> >> >>> >> XML > >> >> >>> >> >> will have two high level nodes. One node's value will be > the > >> >> >>> service > >> >> >>> >> to > >> >> >>> >> >> call > >> >> >>> >> >> (will become part of the REST URL). The other node will be > a > >> >> big > >> >> >>> chunk > >> >> >>> >> of > >> >> >>> >> >> XML to be POSTed to the service. The content-type is > >> >> >>> >> >> x-www-form-urlencoded. > >> >> >>> >> >> > >> >> >>> >> >> I extended DefaultHttpProviderMarshaler and I call > >> >> >>> >> >> > >> >> httpExchange.setRequestContent(bigXmlChunkContentOfTheSecondNode). > >> >> >>> >> >> > >> >> >>> >> >> This almost works. I use JaxenStringXPathExpression to get > >> the > >> >> >>> value > >> >> >>> >> of > >> >> >>> >> >> the > >> >> >>> >> >> first node and set the REST URL. Then my class has a new > >> >> property, > >> >> >>> >> >> contentExpression, also a JaxenStringXPathExpression. I > use > >> >> this > >> >> >>> to > >> >> >>> >> >> define > >> >> >>> >> >> the XPath to the second node, the one with the big chunk > of > >> >> XML, > >> >> >>> but > >> >> >>> >> it > >> >> >>> >> >> adds > >> >> >>> >> >> the values of the second node. What I need is the chunk of > >> XML, > >> >> >>> >> elements, > >> >> >>> >> >> attributes and all. > >> >> >>> >> >> > >> >> >>> >> >> I guess I could introduce a Saxon endpoint to do a > >> >> transformation > >> >> >>> and > >> >> >>> >> a > >> >> >>> >> >> router to send the message to different HTTP endpoints > based > >> on > >> >> >>> the > >> >> >>> >> first > >> >> >>> >> >> node but that seems a lot less elegant than just > dynamically > >> >> >>> >> determining > >> >> >>> >> >> the > >> >> >>> >> >> REST URL in the marshaler. It works fine for GETs but then > >> >> POST, > >> >> >>> I'm > >> >> >>> >> >> learning, is a different story. > >> >> >>> >> >> > >> >> >>> >> >> Any thoughts? > >> >> >>> >> >> > >> >> >>> >> >> Thanks > >> >> >>> >> >> Tom > >> >> >>> >> >> > >> >> >>> >> >> > >> >> >>> >> >> gnodet wrote: > >> >> >>> >> >> > > >> >> >>> >> >> > I really think the best way would be to create your own > >> >> >>> marshaler > >> >> >>> if > >> >> >>> >> >> the > >> >> >>> >> >> > default one does not work for you. If you come up with > >> >> >>> something > >> >> >>> >> >> generic > >> >> >>> >> >> > enough feel free to contribute it back. However, the > >> >> >>> >> >> > DefaultHttpProviderMarshaler should send a POST request > if > >> >> the > >> >> >>> input > >> >> >>> >> >> > message > >> >> >>> >> >> > is not null, but this is more like a soap POST rather > than > >> a > >> >> >>> form > >> >> >>> >> post > >> >> >>> >> >> > with > >> >> >>> >> >> > key/value pairs. Is that what you'd need ? How do you > >> >> extract > >> >> >>> the > >> >> >>> >> >> > key/value pairs from the exchange ? > >> >> >>> >> >> > > >> >> >>> >> >> > On Tue, Apr 1, 2008 at 3:26 PM, Tom Purcell > >> >> >>> >> >> > <[EMAIL PROTECTED]> > >> >> >>> >> >> > wrote: > >> >> >>> >> >> > > >> >> >>> >> >> >> > >> >> >>> >> >> >> Hello > >> >> >>> >> >> >> > >> >> >>> >> >> >> I'm trying to use the servicemix-http http:provider to > >> call > >> >> a > >> >> >>> >> RESTful > >> >> >>> >> >> >> service. GET works fine but I'm having trouble trying > to > >> >> >>> configure > >> >> >>> >> it > >> >> >>> >> >> to > >> >> >>> >> >> >> do > >> >> >>> >> >> >> a post. It appears to me that > >> DefaultHttpProviderMarshaler > >> >> does > >> >> >>> not > >> >> >>> >> >> >> directly > >> >> >>> >> >> >> support this and so I must write my own Marshaler to > set > >> the > >> >> >>> >> content. > >> >> >>> >> >> My > >> >> >>> >> >> >> first question is just a request to verify that is > >> correct > >> >> and > >> >> >>> that > >> >> >>> >> >> I'm > >> >> >>> >> >> >> not > >> >> >>> >> >> >> missing something. > >> >> >>> >> >> >> > >> >> >>> >> >> >> My next question is about > >> >> >>> >> >> >> http://issues.apache.org/activemq/browse/SM-580 > >> >> >>> >> >> >> SM-580 > >> >> <http://issues.apache.org/activemq/browse/SM-580SM-580 > >> >> > > >> >> >>> . > >> >> >>> >> This > >> >> >>> >> >> >> appears to address this situation although I'm not > >> certain > >> >> it > >> >> >>> >> >> >> does so in a RESTful way (I'm new to REST). SM-580 > >> appears > >> >> to > >> >> >>> be > >> >> >>> >> >> >> scheduled > >> >> >>> >> >> >> for 3.3 so is this what I would use once 3.3 is > released > >> and > >> >> >>> when > >> >> >>> >> is > >> >> >>> >> >> 3.3 > >> >> >>> >> >> >> scheduled for release? > >> >> >>> >> >> >> > >> >> >>> >> >> >> Thanks > >> >> >>> >> >> >> Tom > >> >> >>> >> >> >> -- > >> >> >>> >> >> >> View this message in context: > >> >> >>> >> >> >> > >> >> >>> >> >> > >> >> >>> >> > >> >> >>> > >> >> > >> > http://www.nabble.com/servicemix-http-Post-support-tp16418421s12049p16418421.html > >> >> >>> >> >> >> Sent from the ServiceMix - User mailing list archive at > >> >> >>> Nabble.com. > >> >> >>> >> >> >> > >> >> >>> >> >> >> > >> >> >>> >> >> > > >> >> >>> >> >> > > >> >> >>> >> >> > -- > >> >> >>> >> >> > Cheers, > >> >> >>> >> >> > Guillaume Nodet > >> >> >>> >> >> > ------------------------ > >> >> >>> >> >> > Blog: http://gnodet.blogspot.com/ > >> >> >>> >> >> > > >> >> >>> >> >> > > >> >> >>> >> >> > >> >> >>> >> >> -- > >> >> >>> >> >> View this message in context: > >> >> >>> >> >> > >> >> >>> >> > >> >> >>> > >> >> > >> > http://www.nabble.com/servicemix-http-Post-support-tp16418421p16427193.html > >> >> >>> >> >> Sent from the ServiceMix - User mailing list archive at > >> >> >>> Nabble.com. > >> >> >>> >> >> > >> >> >>> >> >> > >> >> >>> >> > > >> >> >>> >> > > >> >> >>> >> > -- > >> >> >>> >> > Cheers, > >> >> >>> >> > Guillaume Nodet > >> >> >>> >> > ------------------------ > >> >> >>> >> > Blog: http://gnodet.blogspot.com/ > >> >> >>> >> > > >> >> >>> >> > > >> >> >>> >> > >> >> >>> >> -- > >> >> >>> >> View this message in context: > >> >> >>> >> > >> >> >>> > >> >> > >> > http://www.nabble.com/servicemix-http-Post-support-tp16418421p16446910.html > >> >> >>> >> Sent from the ServiceMix - User mailing list archive at > >> >> Nabble.com. > >> >> >>> >> > >> >> >>> >> > >> >> >>> > > >> >> >>> > > >> >> >>> > -- > >> >> >>> > Cheers, > >> >> >>> > Guillaume Nodet > >> >> >>> > ------------------------ > >> >> >>> > Blog: http://gnodet.blogspot.com/ > >> >> >>> > > >> >> >>> > > >> >> >>> > >> >> >>> -- > >> >> >>> View this message in context: > >> >> >>> > >> >> > >> > http://www.nabble.com/servicemix-http-Post-support-tp16418421p16452156.html > >> >> >>> Sent from the ServiceMix - User mailing list archive at > >> Nabble.com. > >> >> >>> > >> >> >>> > >> >> >> > >> >> >> > >> >> >> -- > >> >> >> Cheers, > >> >> >> Guillaume Nodet > >> >> >> ------------------------ > >> >> >> Blog: http://gnodet.blogspot.com/ > >> >> >> > >> >> >> > >> >> > > >> >> > > >> >> > >> >> -- > >> >> View this message in context: > >> >> > >> > http://www.nabble.com/servicemix-http-Post-support-tp16418421p16469634.html > >> >> Sent from the ServiceMix - User mailing list archive at Nabble.com. > >> >> > >> >> > >> > > >> > > >> > -- > >> > Cheers, > >> > Guillaume Nodet > >> > ------------------------ > >> > Blog: http://gnodet.blogspot.com/ > >> > > >> > > >> > >> -- > >> View this message in context: > >> > http://www.nabble.com/servicemix-http-Post-support-tp16418421p16491435.html > >> Sent from the ServiceMix - User mailing list archive at Nabble.com. > >> > >> > > > > > > -- > > Cheers, > > Guillaume Nodet > > ------------------------ > > Blog: http://gnodet.blogspot.com/ > > > > > > -- > View this message in context: > http://www.nabble.com/servicemix-http-Post-support-tp16418421p16507340.html > Sent from the ServiceMix - User mailing list archive at Nabble.com. > > -- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/