4 Replies Latest reply on Oct 18, 2010 9:22 AM by mbirkner

    cxf:consumer endpoint not registered with nmr after ESB Upgrade 4.2 -> 4.3

    mbirkner

      Hi,

       

      We have been using "apache-servicemix-4.2.0-fuse-01-00" for about 6 month now and have a bunch of bundles running on it. Most bundles have the following structure.

       

      cxf:consumer -> camel route -> cxf:provider

       

      Basically we have a the consumer exposes a webservice using CXF, we then check the message using Camel and then route to a provider.

       

      Since we would like to upgrade to Camel 2.4.0 we need to use the latest and greatest version "apache-servicemix-4.3.0-fuse-02-00" of the ESB.

       

      Unfortunatelly all cxf:consumer service units are not being registered with the nmr anymore. nmr:list only shows the provider. The WSDL is exported and I see it in the webbrowser. But if I call the webservice I get "Could not dispatch exchange. No matching endpoints."

       

      Am I missing something? Has something changed over the last 6 months?

       

      Here is a sample beans.xml

       

       

       

       

       

       

      Thank you,

      Marcel

       

      Edited by: mbirkner on Oct 15, 2010 5:59 PM

        • 1. Re: cxf:consumer endpoint not registered with nmr after ESB Upgrade 4.2 -> 4.3
          ffang

          Hi,

           

          You can access the wsdl provided by cxf bc consumer, so the cxf bc consumer should be good.

          Also you get "Could not dispatch exchange. No matching endpoints.", this is throw inside JBI container, which means cxf bc consumer can't find target endpoint(camel endpoint should be the target).

           

          So could you check if your camel endpoint deployed correctly? Or there's any mismatch between the target name specified by your cxf bc consumer endpoint and camel endpoint?

           

          About the cxf:consumer endpoint not registered issue you mentioned here, I just run with cxf-wsdl-first example shipped with kit which has a cxf bc consumer endpoint, it's working for me , and the nmr:list we can see the cxf bc consumer endpoint.

          I couldn't tell so much only from the cxf bc consumer configuration you provided here.

           

          Could you provide your whole configuration and the nmr:list result also?

          Freeman

          • 2. Re: cxf:consumer endpoint not registered with nmr after ESB Upgrade 4.2 -> 4.3
            mbirkner

            Hi,

             

            thanks a lot for your answer. I attached a zip file containing the configuration.

             

            For packaging the Service Units I am currently using: <packaging>jbi-service-unit</packaging> which was working fine and saved me from writting the OSGI import / export statements in the pom.xml.

             

            The example provided by ServiceMix examples-cxf-wsdl-first-osgi-package is using the <packaging>bundle</packaging> Apache Maven Felix Bundle Plugin (BND). Would that make a difference? That example if working fine on the latest version of the Fuse ESB but I would prefer to stick to the jbi-service-unit packing. Otherwise I would have to redo the configuration of all bundles which are already working on Fuse ESB 4.2.0.

             

            Here is the nmr:list result after installing the Service Assembly.

             

            -


            karaf@root> osgi:install -s mvn:de.mnet.esb.service.email/email-service-sa/1.0/zip

            Bundle ID: 199

             

            karaf@root> nmr:list

            Endpoints

            -


            servicemix-cxf-se

            servicemix-quartz

            servicemix-http

            servicemix-drools

            servicemix-mail

            servicemix-validation

            servicemix-ftp

            servicemix-wsn2005

            servicemix-saxon

            servicemix-eip

            servicemix-camel

            servicemix-scripting

            Publisher:Anonymous

            CreatePullPoint:Broker

            root

            NotificationBroker:Broker

            servicemix-bean

            servicemix-osworkflow

            EmailService:EmailServiceImplPort

            servicemix-jms

            servicemix-file

            servicemix-cxf-bc

            -


             

            Version 4.2.0 of the ESB had the following three entries reigstered in the nmr for this bundle.

             

            -


            email:endpoint

            camelcontext:email-camel-su-controlbus

            EmailService:EmailServiceImplPort

            -


             

             

            EmailService:EmailServiceImplPort is the endpoint from the WSDL of the consumer

             

            camelcontext:email-camel-su-controlbus is the endpoint of the camel route

             

            email:endpoint is the endpoint that is registered on the nmr. Its also the endpoint that the Camel Route listens on.

             

            Greetings,

            Marcel

             

            Edited by: mbirkner on Oct 18, 2010 2:08 PM

             

            Edited by: mbirkner on Oct 18, 2010 2:10 PM

            • 3. Re: cxf:consumer endpoint not registered with nmr after ESB Upgrade 4.2 -> 4.3
              ffang

              Hi,

               

              First of all, both JBI and OSGi package works.

              We have cxf-wsdl-first example to demonstrate the JBI package and cxf-wsdl-first-osgi-package to demonstrate OSGi package for servicemix-cxf component.

              Similarly we have camel example to demonstrate the JBI package for servicemix-camel component.

              From your nmr:list, you can see

              EmailService:EmailServiceImplPort

              This is cxf:consumer endpoint registered with nmr, so it means cxf:consumer here is ok.

               

              As you pointed out, you can't see

              email:endpoint

              camelcontext:email-camel-su-controlbus

              on the nmr now, so I think your email-camel-su didn't get installed correctly.

              I believe you can see exceptions in $SMX_HOME/data/log/servicemix.log when you install your bundle, you may need check the exception there to get details.

               

              Btw, I can't simply build your testcase, there's no

                               

              from my side, so I'm not exactly sure what's wrong for your email-camel-su.

               

              Please take a look at the camel example we shipped with kit.

               

              Freeman

              • 4. Re: cxf:consumer endpoint not registered with nmr after ESB Upgrade 4.2 -> 4.3
                mbirkner

                Hi,

                 

                here are the missing bundles. We had to refactor them to match our project structure. Install them in the following order and you should be good to go.

                 

                - all-modules-parent

                - bundle-parent

                 

                I am currently checking both examples you mentioned in your previous post and will let you know what I find out.

                 

                Greetings,

                Marcel