Sorry cry wolf 🐺

My bad

/M

Den 26 mars 2024 kl 10:46, Mikael Andersson Wigander 
<[mikael.andersson.wigan...@pm.me.INVALID](mailto:Den 26 mars 2024 kl 10:46, 
Mikael Andersson Wigander <<a href=)> skrev:

> Hi and thanks for the fix.
>
> However there are some additional issues.
>
> The rest dsl is not returning the correct status code.
>
> I have reverted back to a normal flow using .to().
>
> Not sure if it’s related.
>
> But I’m not capable to return the correct http status code. The error message 
> is returned but with 200 OK.
>
> /M
>
> Den 23 mars 2024 kl 09:27, Claus Ibsen <[claus.ib...@gmail.com](mailto:Den 23 
> mars 2024 kl 09:27, Claus Ibsen <<a href=)> skrev:
>
>> Hi
>>
>> Thanks for the sample project. This is the http response I see now after a
>> code-fix
>>
>> ~/workspace ❯ curl -i -X POST http://localhost:8080/test
>>
>> 8s
>> HTTP/1.1 500
>> Content-Type: application/json
>> Transfer-Encoding: chunked
>> Date: Sat, 23 Mar 2024 08:02:31 GMT
>> Connection: close
>>
>> {
>> "status" : 1000,
>> "message" : "ERROR message = Unspecific Error(Error occurred)"
>> }%
>>
>> On Sat, Mar 23, 2024 at 9:15 AM Claus Ibsen <claus.ib...@gmail.com> wrote:
>>
>>> Hi
>>>
>>> https://issues.apache.org/jira/browse/CAMEL-20607
>>>
>>> On Thu, Mar 21, 2024 at 1:03 PM Mikael Andersson Wigander
>>> <mikael.andersson.wigan...@pm.me.invalid> wrote:
>>>
>>>>
>>>> Hi
>>>>
>>>> As simple as I get do it…
>>>>
>>>> https://github.com/hakuseki/demo-Camel-UoW
>>>>
>>>>
>>>>
>>>> /M
>>>>
>>>>
>>>> On Thursday, March 21st, 2024 at 11:09, Claus Ibsen <
>>>> claus.ib...@gmail.com> wrote:
>>>>
>>>> > Hi
>>>> >
>>>> > Yeah if you keep it plain camel and not fancy spring boot stuff
>>>> >
>>>> > On Thu, Mar 21, 2024 at 11:06 AM Mikael Andersson Wigander
>>>> > mikael.andersson.wigan...@pm.me.invalid wrote:
>>>> >
>>>> > > Spring boot OK?
>>>> > >
>>>> > >
>>>> > > /M
>>>> > >
>>>> > > Den 21 mars 2024 kl 10:51, Claus Ibsen <[claus.ib...@gmail.com
>>>> ](mailto:Den
>>>> > > 21 mars 2024 kl 10:51, Claus Ibsen <<a href=)> skrev:
>>>> > >
>>>> > > > Hi
>>>> > > >
>>>> > > > Can you make something that is pure camel (not quarkus) that will
>>>> help
>>>> > > >
>>>> > > > On Thu, Mar 21, 2024 at 7:56 AM Mikael Andersson Wigander
>>>> > > > mikael.andersson.wigan...@pm.me.invalid wrote:
>>>> > > >
>>>> > > > > Here's a repo to use
>>>> > > > >
>>>> > > > > https://github.com/hakuseki/code-with-quarkus
>>>> > > > >
>>>> > > > > /M
>>>> > > > >
>>>> > > > > On Wednesday, March 20th, 2024 at 22:17, Claus Ibsen <
>>>> > > > > claus.ib...@gmail.com> wrote:
>>>> > > > >
>>>> > > > > > Hi
>>>> > > > > >
>>>> > > > > > Are you able to put together a smaller and simpler example with
>>>> just
>>>> > > > > > routes
>>>> > > > > > (no rest-dsl) that can let us quicker take a look and better
>>>> > > > > > understand
>>>> > > > > > what is happening?
>>>> > > > > >
>>>> > > > > > On Mon, Mar 18, 2024 at 10:04 AM Mikael Andersson Wigander
>>>> > > > > > mikael.andersson.wigan...@pm.me.invalid wrote:
>>>> > > > > >
>>>> > > > > > > Hi
>>>> > > > > > >
>>>> > > > > > > I have experienced a weird behavior in Camel 4.4.0 in Quarkus
>>>> where
>>>> > > > > > > the
>>>> > > > > > > Exception handling is not executing as expected when using a
>>>> toV().
>>>> > > > > > >
>>>> > > > > > > In my code sample below everything starts with a rest call.
>>>> > > > > > > If this rest call finish without errors then the original
>>>> message
>>>> > > > > > > should
>>>> > > > > > > be returned.
>>>> > > > > > > If an error is thrown, then an error message should be
>>>> returned.
>>>> > > > > > >
>>>> > > > > > > But if I call an endpoint using the .toV(), the error is
>>>> processed
>>>> > > > > > > as
>>>> > > > > > > expected BUT NOT returned. It seems like something is messing
>>>> with
>>>> > > > > > > the
>>>> > > > > > > unit
>>>> > > > > > > of work or whatever…
>>>> > > > > > >
>>>> > > > > > > from(direct("start"))
>>>> > > > > > > .setBody(constant(List.of("A", "B")))
>>>> > > > > > > .to(direct("line"));
>>>> > > > > > >
>>>> > > > > > > // .toV(direct("line").getUri(), "mySend", "myReceive");
>>>> > > > > > >
>>>> > > > > > > By commenting out the .to() and removing the comment on
>>>> .toV() the
>>>> > > > > > > problem
>>>> > > > > > > occurs.
>>>> > > > > > >
>>>> > > > > > > This is a simulation so the incoming rest post payload is NOT
>>>> > > > > > > returned
>>>> > > > > > > (just POST a JSON), however the body of the "start" endpoint
>>>> should
>>>> > > > > > > be
>>>> > > > > > > returned if everything work, but an error message should be
>>>> returned
>>>> > > > > > > if an
>>>> > > > > > > error is thrown.
>>>> > > > > > > This is not happening if the .toV() is used. Then the body of
>>>> the
>>>> > > > > > > "start"
>>>> > > > > > > endpoint is returned.
>>>> > > > > > >
>>>> > > > > > > Might this be a bug or have I messed something up?
>>>> > > > > > >
>>>> > > > > > > I really like the Variables now, to send to an endpoint and be
>>>> > > > > > > certain
>>>> > > > > > > the
>>>> > > > > > > original body is untouched without the hazzle of
>>>> storing/restoring
>>>> > > > > > > logic…
>>>> > > > > > >
>>>> > > > > > > /M
>>>> > > > > > >
>>>> > > > > > > *public class *TestRouter *extends *EndpointRouteBuilder {
>>>> > > > > > > @Override
>>>> > > > > > > *public void *configure() *throws Exception {
>>>> > > > > > > onException(IllegalAccessException.class)
>>>> > > > > > > .routeId("Exceptions")
>>>> > > > > > > .maximumRedeliveries(0)
>>>> > > > > > > .handled(true)
>>>> > > > > > > .removeHeaders("")
>>>> > > > > > > .process(*new *JsonResponseProcessor())
>>>> > > > > > > .to(log("Exceptions").level("WARN")
>>>> > > > > > > .showBody(false)
>>>> > > > > > > .showBodyType(false)
>>>> > > > > > > .showHeaders(true)
>>>> > > > > > > .multiline(true))
>>>> > > > > > > .to(direct("reply"));
>>>> > > > > > >
>>>> > > > > > > restConfiguration()
>>>> > > > > > > .bindingMode(RestBindingMode.json)
>>>> > > > > > > .dataFormatProperty("prettyPrint", "true")
>>>> > > > > > > .component("servlet")
>>>> > > > > > > .apiProperty("cors", "true");
>>>> > > > > > >
>>>> > > > > > > rest().post("/test")
>>>> > > > > > > .id("REST-workOrder-POST")
>>>> > > > > > > .consumes("application/json")
>>>> > > > > > > .produces("application/json")
>>>> > > > > > > .outType(ResponseMessage.class)
>>>> > > > > > > .to(direct("start").getUri());
>>>> > > > > > >
>>>> > > > > > > from(direct("start"))
>>>> > > > > > > .setBody(constant(List.of("A", "B")))
>>>> > > > > > > .to(direct("line"));
>>>> > > > > > >
>>>> > > > > > > *// .toV(direct("line").getUri(), "mySend", "myReceive");
>>>> > > > > > > *from("direct:line")
>>>> > > > > > > .to("log:line")
>>>> > > > > > > .process(*new *MyProcessor())
>>>> > > > > > > .to("mock:line");
>>>> > > > > > >
>>>> > > > > > > from(direct("reply"))
>>>> > > > > > > .routeId("createResponse")
>>>> > > > > > > .description("Creates a unified response")
>>>> > > > > > > .to(log("DIRECT_REPLY").showBody(true)
>>>> > > > > > > .showVariables(true)
>>>> > > > > > > .showBodyType(true)
>>>> > > > > > > .showHeaders(true)
>>>> > > > > > > .multiline(true))
>>>> > > > > > > .end();
>>>> > > > > > > }
>>>> > > > > > >
>>>> > > > > > > *private class *MyProcessor *implements
>>>> > > > > > > *org.apache.camel.*Processor *
>>>> > > > > > > {
>>>> > > > > > > @Override
>>>> > > > > > > *public void *process(*final **Exchange *exchange) *throws
>>>> > > > > > > *Exception
>>>> > > > > > > {
>>>> > > > > > > log.info(exchange.getIn()
>>>> > > > > > > .getBody(String.class));
>>>> > > > > > > *throw new *IllegalAccessException("Error occurred");
>>>> > > > > > > }
>>>> > > > > > > }
>>>> > > > > > >
>>>> > > > > > > *private class *JsonResponseProcessor *implements **Processor
>>>> *{
>>>> > > > > > > @Override
>>>> > > > > > > *public void *process(*final **Exchange *exchange) {
>>>> > > > > > >
>>>> > > > > > > Exception cause = exchange.getProperty(Exchange.
>>>> > > > > > > EXCEPTION_CAUGHT, Exception.class);
>>>> > > > > > > ResponseMessage message = *new *ResponseMessage();
>>>> > > > > > >
>>>> > > > > > > *final **Message *in = exchange.getIn();
>>>> > > > > > > *if *(cause != null) {
>>>> > > > > > > String responseCode = in.getHeader(Exchange.
>>>> > > > > > > HTTP_RESPONSE_CODE, String.class);
>>>> > > > > > >
>>>> > > > > > > String reason = "Unspecific Error";
>>>> > > > > > > String errorString = cause.getMessage();
>>>> > > > > > > String statusCode = "1000";
>>>> > > > > > >
>>>> > > > > > > in.setHeader(Exchange.HTTP_RESPONSE_CODE,
>>>> > > > > > > HttpResponseStatus.INTERNAL_SERVER_ERROR);
>>>> > > > > > > message.setError(NumberUtils.toInt(statusCode, 1000),
>>>> > > > > > > String.format("ERROR message = %s(%s)",
>>>> > > > > > > reason, errorString));
>>>> > > > > > >
>>>> > > > > > > }
>>>> > > > > > > in.setBody(message);
>>>> > > > > > > }
>>>> > > > > > > }
>>>> > > > > > > }
>>>> > > > > > >
>>>> > > > > > > ------------------------------
>>>> > > > > > >
>>>> > > > > > > Capgemini is a trading name used by the Capgemini Group of
>>>> companies
>>>> > > > > > > which
>>>> > > > > > > includes Capgemini Sverige AB, a company registered in Sweden
>>>> > > > > > > (number
>>>> > > > > > > 556092-3053) whose registered office is at FLEMINGGATAN 18
>>>> BOX 12054
>>>> > > > > > > S-102
>>>> > > > > > > 22 Stockholm, Sweden.
>>>> > > > > > > This message contains information that may be privileged or
>>>> > > > > > > confidential
>>>> > > > > > > and is the property of the Capgemini Group. It is intended
>>>> only for
>>>> > > > > > > the
>>>> > > > > > > person to whom it is addressed. If you are not the intended
>>>> > > > > > > recipient,
>>>> > > > > > > you
>>>> > > > > > > are not authorized to read, print, retain, copy, disseminate,
>>>> > > > > > > distribute,
>>>> > > > > > > or use this message or any part thereof. If you receive this
>>>> > > > > > > message in
>>>> > > > > > > error, please notify the sender immediately and delete all
>>>> copies of
>>>> > > > > > > this
>>>> > > > > > > message.
>>>> > > > > >
>>>> > > > > > --
>>>> > > > > > Claus Ibsen
>>>> > > > > > -----------------
>>>> > > > > > @davsclaus
>>>> > > > > > Camel in Action 2: https://www.manning.com/ibsen2
>>>> > > >
>>>> > > > --
>>>> > > > Claus Ibsen
>>>> > > > -----------------
>>>> > > > @davsclaus
>>>> > > > Camel in Action 2: https://www.manning.com/ibsen2
>>>> >
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > Claus Ibsen
>>>> > -----------------
>>>> > @davsclaus
>>>> > Camel in Action 2: https://www.manning.com/ibsen2
>>>>
>>>
>>>
>>> --
>>> Claus Ibsen
>>> -----------------
>>> @davsclaus
>>> Camel in Action 2: https://www.manning.com/ibsen2
>>>
>>
>> --
>> Claus Ibsen
>> -----------------
>> @davsclaus
>> Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to