Hi,
I'm trying to do the same thing but I dont find documentation on how to
use a custom marshaller: in fact I dont find documentation on how using
HttpConsumerEndpoint, because the configuration explained in the samples
creates an HttpComponent that uses a HttpEndpoint, that is not
configurable because it uses always the JBIMarshaller.
Which is the configuration for using HttpConsumerEndpoint and then use a
custom marshaller ?
Thanks in advance
Gianfranco Boccalon
adam.strickland ha scritto:
I'm implementing an HttpConsumerEndpoint using a non-SOAP protocol. What I
did was create a custom HttpConsumerMarshaler to handle the inbound request
(if you're interested, it a MIME Multipart-Related request; significant in
that it is absolutely NOT XML compliant, which causes the various XML
parsing routines to barf) and configured the endpoint to use it. In this
use case, the external entity (i.e. an HTTP client) is expecting a standard
HTTP Request-Response cycle, which corresponds to an InOut MEP; therefore I
configured the endpoint to use InOut as the default MEP. What I found was
that the client was receiving an empty response, which did not satisfy the
business requirements (the client expects an ACK or NAK type of message;
also MIME Multipart-Related, by the way).
What I ended up doing was simply commenting/removing a line of code in the
HttpConsumerEndpoint, recompiling and voila! My custom version of
ServiceMix handled the request like a champ. What I did was simply remove
the 'return' statement (line 244), allowing the method to run to completion
where it actually performs the send() of the outbound message.
So here's the actual question: am I missing something here? I didn't see
another way around this, but I could just be blind to one of the many
implications or just have overlooked another component, etc. that may solve
the problem better.