4 Replies Latest reply on Mar 5, 2013 9:14 AM by njiang

    Jetty InstanceAlreadyExistsException

    paul.h

      Fuse ESB 7.1.0

       

      When I start several web services in karaf I always see in logs next warning:

       

      WARN  | xtenderThread-13 | MBeanContainer                   | 90 - org.eclipse.jetty.util - 7.6.7.v20120910 | bean: org.apache.cxf.transport.http_jetty.Jett

      yHTTPHandler@26411509

      javax.management.InstanceAlreadyExistsException: org.apache.cxf.transport.http_jetty:type=jettyhttphandler,id=0

      at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:453):1.6.0_35

      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(DefaultMBeanServerInterceptor.java:1484):1.6.0_35

      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:963):1.6.0_35

      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:917):1.6.0_35

      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:312):1.6.0_35

      at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:482):1.6.0_35

      at org.eclipse.jetty.jmx.MBeanContainer.addBean(MBeanContainer.java:297)93:org.eclipse.jetty.jmx:7.6.7.v20120910

      at org.eclipse.jetty.util.component.Container.addBean(Container.java:182)90:org.eclipse.jetty.util:7.6.7.v20120910

      at org.eclipse.jetty.server.handler.AbstractHandler.setServer(AbstractHandler.java:80)84:org.eclipse.jetty.server:7.6.7.v20120910

      at org.eclipse.jetty.server.handler.HandlerWrapper.setServer(HandlerWrapper.java:136)84:org.eclipse.jetty.server:7.6.7.v20120910

      at org.eclipse.jetty.server.handler.ContextHandler.setServer(ContextHandler.java:249)84:org.eclipse.jetty.server:7.6.7.v20120910

      at org.eclipse.jetty.server.handler.HandlerCollection.setHandlers(HandlerCollection.java:90)84:org.eclipse.jetty.server:7.6.7.v20120910

      at org.eclipse.jetty.server.handler.ContextHandlerCollection.setHandlers(ContextHandlerCollection.java:162)84:org.eclipse.jetty.server:7.6.7.v20120910

      at org.eclipse.jetty.server.handler.HandlerCollection.addHandler(HandlerCollection.java:282)84:org.eclipse.jetty.server:7.6.7.v20120910

      at org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine.addServant(JettyHTTPServerEngine.java:432)[192:org.apache.cxf.cxf-rt-transports-http-jetty:2.6.0.fuse-

      71-047]

        at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.activate(JettyHTTPDestination.java:172)[192:org.apache.cxf.cxf-rt-transports-http-jetty:2.6.0.fuse-71-0

      47]

              at org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractObservable.java:48)[169:org.apache.cxf.cxf-api:2.6.0.fuse-71-047]

              at org.apache.cxf.binding.AbstractBaseBindingFactory.addListener(AbstractBaseBindingFactory.java:97)[169:org.apache.cxf.cxf-api:2.6.0.fuse-71-047]

              at org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFactory.java:836)[175:org.apache.cxf.cxf-rt-bindings-soap:2.6.0.fuse-71-047]

              at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:131)[169:org.apache.cxf.cxf-api:2.6.0.fuse-71-047]

              at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:204)[179:org.apache.cxf.cxf-rt-frontend-simple:2.6.0.fuse-71-047]

              at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:211)[180:org.apache.cxf.cxf-rt-frontend-jaxws:2.6.0.fuse-71-047]

              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.6.0_35]

              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[:1.6.0_35]

              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_35]

              at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_35]

              at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1546)[105:org.springframework.beans:3.0.7.RELEASE]

              at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1487)[105:org.springframework.beans:3.0.7.RELEASE]

              at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1419)[105:org.springframework.beans:3.0.7.RELEASE]

              at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:518)[105:org.springframework.beans:3.0.7.RELEASE]

              at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)[105:org.springframework.beans:3.0.7.RELEASE]

              at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)[105:org.springframework.beans:3.0.7.RELEASE]

              at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)[105:org.springframework.beans:3.0.7.RELEASE]

              at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)[105:org.springframework.beans:3.0.7.RELEASE]

              at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)[105:org.springframework.beans:3.0.7.RELEASE]

              at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)[105:org.springframework.beans:3.0.7.RELEASE]

              at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)[104:org.springframework.context:3.0.7.RELEASE]

              at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:69)[114:org.springframework.osgi.core:1.2.1]

              at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:355)[114:org.springframework.osgi.core:1.2.1]

              at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)[114:org.springframework.osgi.core:1.2.1]

              at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)[114:org.springframework.osgi.core:1.2.1]

              at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132)[113:org.springframework.osgi.extender:1.2.1]

              at java.lang.Thread.run(Thread.java:662)[:1.6.0_35]

       

      Tell me please, why it happens and how fix it?

      In fuse esb 4.4.1 such didn't occur.

       

      Thanks!

       

       

        • 1. Re: Jetty InstanceAlreadyExistsException
          ffang

          Hi,

           

          I believe your cxf endpoint address looks like

           

          http://..

          right? This will use standalone http-jetty transport, your  should use relative address, something like address="/...", this will use http-osgi transport, which is suggested in OSGi container.

           

          Freeman

          • 2. Re: Jetty InstanceAlreadyExistsException
            paul.h

            Yes, you right! Thanks!

            It is a pity that it isn't present in documentation

            • 3. Re: Jetty InstanceAlreadyExistsException
              paul.h

              I didn't check that service doesn't work after address change.

               

              My cxf config:

                  <jaxws:server id="my-service-ws"

                       serviceBean="#myServiceImpl"

                       address="/${ws.host}:${ws.port}/${ws.path}">

                  </jaxws:server>

               

              netstat -an | grep 9004 return nothing (ws.port = 9004)

               

              In log:

              16:31:00,585 | INFO  | xtenderThread-33 | ServerImpl                       | 169 - org.apache.cxf.cxf-api - 2.6.0.fuse-71-047 | Setting the server's publish address to be /0.0.0.0:9004/myservice

               

              My config before changes:

                  <jaxws:server id="my-service-ws"

                       serviceBean="#myServiceImpl"

                       address="http://${ws.host}:${ws.port}/${ws.path}">

                  </jaxws:server>

               

              I start jetty instance for each web service with diffrent ports and each jetty instance created with warning as I describe follow.

               

              Edited by: paul.h on Feb 28, 2013 1:37 PM

              • 4. Re: Jetty InstanceAlreadyExistsException
                njiang

                You may need to consider to disable the Jetty server JMX extension.