padcom / grails-routing

Apache License 2.0
30 stars 31 forks source link

Integrating HL7 #21

Closed sarbogast closed 11 years ago

sarbogast commented 11 years ago

I just discovered Apache Camel and I'm trying to use it to receive HL7 messages and parse them.

Here is the content of my resources.groovy:

beans = {
    xmlns camel:"http://camel.apache.org/schema/spring"
    camel.endpoint(id:'hl7listener', uri:'mina:tcp://localhost:8888?sync=true&codec=#hl7codec')
    hl7codec(HL7MLLPCodec){
        charset="iso-8859-1"
    }
}

And here is my route:

class ReportRoute extends RouteBuilder {
    def grailsApplication

    @Override
    void configure() {
        def config = grailsApplication?.config

        from("hl7listener").to("reportService");
    }
}

And here is the structure of my service:

class ReportService {
    Message receive(Message input) throws HL7Exception {
        return makeACK(input, null)
    }
...
}

I'm able to verify that I can connect to my TCP server and send a message, but it never gets to my service method. I know it because I've set up a breakpoint inside my service method and it never gets there. And since it never gets there, the ACK is never returned and the connection times out. Did I forget something in configuring my routes? Did I make a mistake somewhere in my configuration?

padcom commented 11 years ago

Hi,

I'm not maintaining this plugin anymore. Please refer to the Apache Camel site for documentation and examples.

I strongly suggest that you recreate the issue in a pure Java application and if it doesn't occur there to only then post an issue on GitHub. Otherwise, without a prior verifiable verification issues are just closed.

Best regards, Matthias.

2013/2/27 Sebastien Arbogast notifications@github.com

I just discovered Apache Camel and I'm trying to use it to receive HL7 messages and parse them.

Here is the content of my resources.groovy:

beans = { xmlns camel:"http://camel.apache.org/schema/spring" camel.endpoint(id:'hl7listener', uri:'mina:tcp://localhost:8888?sync=true&codec=#hl7codec') hl7codec(HL7MLLPCodec){ charset="iso-8859-1" }}

And here is my route:

class ReportRoute extends RouteBuilder { def grailsApplication

@Override
void configure() {
    def config = grailsApplication?.config

    from("hl7listener").to("reportService");
}}

And here is the structure of my service:

class ReportService { Message receive(Message input) throws HL7Exception { return makeACK(input, null) }...}

I'm able to verify that I can connect to my TCP server and send a message, but it never gets to my service method. I know it because I've set up a breakpoint inside my service method and it never gets there. And since it never gets there, the ACK is never returned and the connection times out. Did I forget something in configuring my routes? Did I make a mistake somewhere in my configuration?

— Reply to this email directly or view it on GitHubhttps://github.com/padcom/grails-routing/issues/21 .

sarbogast commented 11 years ago

OK I figured it out. It was indeed a Camel problem. I didn't understand how Camel was supposed to know which method to call in my ReportService. Here is the route that made it work (for future reference only):

from("hl7listener").beanRef("reportService", "receive");