You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Dominik Drzewiecki (JIRA)" <ji...@apache.org> on 2011/08/29 10:59:40 UTC

[jira] [Created] (CXF-3773) CXF unregisters MBeans for JAX-WS endpoints twice

CXF unregisters MBeans for JAX-WS endpoints twice
-------------------------------------------------

                 Key: CXF-3773
                 URL: https://issues.apache.org/jira/browse/CXF-3773
             Project: CXF
          Issue Type: Bug
          Components: JAX-WS Runtime
    Affects Versions: 2.4.2
         Environment: Tomcat 6.0.33 / Spring 3.0.[56] / Java 1.[67]
            Reporter: Dominik Drzewiecki


MBeans created for JAX-WS endpoints do get unregistered twice during context shutdown.

I've placed a breakpoint in {{org.apache.cxf.management.jmx.InstrumentationManagerImpl.unregister(ObjectName)}} and caught following stacks when reaching it. The first line shows the ObjectName being unregistered.

You may notice that the first three stacks are observed during the {{CXFBus}} shutdown, and the fourth one during {{JAXWS22SpringEndpointImpl}}.

The last invocation of {{org.apache.cxf.management.jmx.InstrumentationManagerImpl.unregister(ObjectName)}} results in {{javax.management.InstanceNotFoundException}} being thrown (the full message is {{"WARNING: Unregistering ManagedEndpoint failed. javax.management.InstanceNotFoundException: org.apache.cxf:bus.id=cxf52615653,type=Bus.Service.Endpoint,service="{http://ws.xxx.xxxxx.com/}Service",port="ServicePort"}}) which prevents from shutting down the endpoint bean, spring context and web application context cleanly.

{noformat}
org.apache.cxf:bus.id=cxf52615653,type=Bus.Service.Endpoint,service="{http://ws.xxx.xxxxxx.com/}Service",port="ServicePort"
Thread [main] (Suspended (entry into method unregister in InstrumentationManagerImpl))	
	InstrumentationManagerImpl.unregister(ObjectName) line: 229	
	InstrumentationManagerImpl.unregister(ManagedComponent) line: 225	
	ServerImpl.destroy() line: 180	
	ServerRegistryImpl.preShutdown() line: 88	
	CXFBusLifeCycleManager.preShutdown() line: 84	
	CXFBusLifeCycleManager.postShutdown() line: 91	
	SpringBus.onApplicationEvent(ApplicationEvent) line: 94	
	SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent) line: 97	
	XmlWebApplicationContext(AbstractApplicationContext).publishEvent(ApplicationEvent) line: 303	
	XmlWebApplicationContext(AbstractApplicationContext).doClose() line: 1007	
	XmlWebApplicationContext(AbstractApplicationContext).close() line: 970	
	ContextLoaderListener(ContextLoader).closeWebApplicationContext(ServletContext) line: 384	
	ContextLoaderListener.contextDestroyed(ServletContextEvent) line: 78	
	StandardContext.listenerStop() line: 4245	
	StandardContext.stop() line: 4886	
	StandardHost(ContainerBase).stop() line: 1110	
	StandardEngine(ContainerBase).stop() line: 1110	
	StandardEngine.stop() line: 468	
	StandardService.stop() line: 604	
	StandardServer.stop() line: 788	
	Catalina.stop() line: 662	
	Catalina.start() line: 629	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
	Method.invoke(Object, Object...) line: 601	
	Bootstrap.start() line: 289	
	Bootstrap.main(String[]) line: 414	
{noformat}

{noformat}
org.apache.cxf:bus.id=cxf52615653,type=Bus.Service.Endpoint,service="{http://ws.xxx.xxxxx.com/}Service",port="Service"
Thread [main] (Suspended (entry into method unregister in InstrumentationManagerImpl))	
	InstrumentationManagerImpl.unregister(ObjectName) line: 229	
	InstrumentationManagerImpl.unregister(ManagedComponent) line: 225	
	ServerImpl.destroy() line: 180	
	ServerRegistryImpl.preShutdown() line: 88	
	CXFBusLifeCycleManager.preShutdown() line: 84	
	CXFBusLifeCycleManager.postShutdown() line: 91	
	SpringBus.onApplicationEvent(ApplicationEvent) line: 94	
	SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent) line: 97	
	XmlWebApplicationContext(AbstractApplicationContext).publishEvent(ApplicationEvent) line: 303	
	XmlWebApplicationContext(AbstractApplicationContext).doClose() line: 1007	
	XmlWebApplicationContext(AbstractApplicationContext).close() line: 970	
	ContextLoaderListener(ContextLoader).closeWebApplicationContext(ServletContext) line: 384	
	ContextLoaderListener.contextDestroyed(ServletContextEvent) line: 78	
	StandardContext.listenerStop() line: 4245	
	StandardContext.stop() line: 4886	
	StandardHost(ContainerBase).stop() line: 1110	
	StandardEngine(ContainerBase).stop() line: 1110	
	StandardEngine.stop() line: 468	
	StandardService.stop() line: 604	
	StandardServer.stop() line: 788	
	Catalina.stop() line: 662	
	Catalina.start() line: 629	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
	Method.invoke(Object, Object...) line: 601	
	Bootstrap.start() line: 289	
	Bootstrap.main(String[]) line: 414	
{noformat}

{noformat}
org.apache.cxf:bus.id=cxf52615653,type=Bus
Thread [main] (Suspended (entry into method unregister in InstrumentationManagerImpl))	
	InstrumentationManagerImpl.unregister(ObjectName) line: 229	
	InstrumentationManagerImpl.shutdown() line: 263	
	InstrumentationManagerImpl.postShutdown() line: 279	
	CXFBusLifeCycleManager.postShutdown() line: 97	
	SpringBus.onApplicationEvent(ApplicationEvent) line: 94	
	SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent) line: 97	
	XmlWebApplicationContext(AbstractApplicationContext).publishEvent(ApplicationEvent) line: 303	
	XmlWebApplicationContext(AbstractApplicationContext).doClose() line: 1007	
	XmlWebApplicationContext(AbstractApplicationContext).close() line: 970	
	ContextLoaderListener(ContextLoader).closeWebApplicationContext(ServletContext) line: 384	
	ContextLoaderListener.contextDestroyed(ServletContextEvent) line: 78	
	StandardContext.listenerStop() line: 4245	
	StandardContext.stop() line: 4886	
	StandardHost(ContainerBase).stop() line: 1110	
	StandardEngine(ContainerBase).stop() line: 1110	
	StandardEngine.stop() line: 468	
	StandardService.stop() line: 604	
	StandardServer.stop() line: 788	
	Catalina.stop() line: 662	
	Catalina.start() line: 629	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
	Method.invoke(Object, Object...) line: 601	
	Bootstrap.start() line: 289	
	Bootstrap.main(String[]) line: 414	
{noformat}

{noformat}
org.apache.cxf:bus.id=cxf52615653,type=Bus.Service.Endpoint,service="{http://ws.xxx.xxxxx.com/}Service",port="ServicePort"
Thread [main] (Suspended (entry into method unregister in InstrumentationManagerImpl))	
	InstrumentationManagerImpl.unregister(ObjectName) line: 229	
	InstrumentationManagerImpl.unregister(ManagedComponent) line: 225	
	ServerImpl.destroy() line: 180	
	JAXWS22SpringEndpointImpl(EndpointImpl).stop() line: 263	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
	Method.invoke(Object, Object...) line: 601	
	DisposableBeanAdapter.invokeCustomDestroyMethod(Method) line: 273	
	DisposableBeanAdapter.destroy() line: 199	
	DefaultListableBeanFactory(DefaultSingletonBeanRegistry).destroyBean(String, DisposableBean) line: 487	
	DefaultListableBeanFactory(DefaultSingletonBeanRegistry).destroySingleton(String) line: 463	
	DefaultListableBeanFactory(DefaultSingletonBeanRegistry).destroySingletons() line: 431	
	XmlWebApplicationContext(AbstractApplicationContext).destroyBeans() line: 1048	
	XmlWebApplicationContext(AbstractApplicationContext).doClose() line: 1022	
	XmlWebApplicationContext(AbstractApplicationContext).close() line: 970	
	ContextLoaderListener(ContextLoader).closeWebApplicationContext(ServletContext) line: 384	
	ContextLoaderListener.contextDestroyed(ServletContextEvent) line: 78	
	StandardContext.listenerStop() line: 4245	
	StandardContext.stop() line: 4886	
	StandardHost(ContainerBase).stop() line: 1110	
	StandardEngine(ContainerBase).stop() line: 1110	
	StandardEngine.stop() line: 468	
	StandardService.stop() line: 604	
	StandardServer.stop() line: 788	
	Catalina.stop() line: 662	
	Catalina.start() line: 629	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
	Method.invoke(Object, Object...) line: 601	
	Bootstrap.start() line: 289	
	Bootstrap.main(String[]) line: 414	
{noformat}

For the completness, my spring context is as simple as:
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
		http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
		http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:jaxrs="http://cxf.apache.org/jaxrs"
	xmlns:cxf="http://cxf.apache.org/core">

	<import resource="classpath:META-INF/cxf/cxf.xml" />
	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

	<cxf:bus />

	<bean id="instrumentationManager"
		class="org.apache.cxf.management.jmx.InstrumentationManagerImpl" >
		<property name="bus" ref="cxf" />
		<property name="enabled" value="true" />
		<property name="usePlatformMBeanServer" value="true" />
	</bean>

	<bean id="counterRepository" class="org.apache.cxf.management.counters.CounterRepository" >
		<property name="bus" ref="cxf" />
	</bean>

	<jaxws:endpoint id="webService" implementor="#service"
		address="${web.ws.uri}" />
</beans>
{code}
While the class and the interface exposed as a service looks somewhat like this:

{code}
@WebService(endpointInterface="com.xxxxx.xxx.ws.IService", serviceName="Service" )
@Component("service")
public class Service implements IService {
 // implementation here
}
{code}

{code}
@WebService
public interface IService {
	@WebResult(name = "status")
	@WebMethod(operationName = "send")
	public boolean send(@WebParam(name = "message") SomeMessage message)
			throws SomeException;

	@Oneway
	@WebMethod(operationName = "doSend")
	public void doSend(@WebParam(name = "message") SomeMessage message)
			throws SomeException;
}
{code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (CXF-3773) CXF unregisters MBeans for JAX-WS endpoints twice

Posted by "Aki Yoshida (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-3773?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aki Yoshida resolved CXF-3773.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.5
                   2.4.3

> CXF unregisters MBeans for JAX-WS endpoints twice
> -------------------------------------------------
>
>                 Key: CXF-3773
>                 URL: https://issues.apache.org/jira/browse/CXF-3773
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.4.2
>         Environment: Tomcat 6.0.33 / Spring 3.0.[56] / Java 1.[67]
>            Reporter: Dominik Drzewiecki
>            Assignee: Aki Yoshida
>             Fix For: 2.4.3, 2.5
>
>
> MBeans created for JAX-WS endpoints do get unregistered twice during context shutdown.
> I've placed a breakpoint in {{org.apache.cxf.management.jmx.InstrumentationManagerImpl.unregister(ObjectName)}} and caught following stacks when reaching it. The first line shows the ObjectName being unregistered.
> You may notice that the first three stacks are observed during the {{CXFBus}} shutdown, and the fourth one during {{JAXWS22SpringEndpointImpl}}.
> The last invocation of {{org.apache.cxf.management.jmx.InstrumentationManagerImpl.unregister(ObjectName)}} results in {{javax.management.InstanceNotFoundException}} being thrown (the full message is {{"WARNING: Unregistering ManagedEndpoint failed. javax.management.InstanceNotFoundException: org.apache.cxf:bus.id=cxf52615653,type=Bus.Service.Endpoint,service="{http://ws.xxx.xxxxx.com/}Service",port="ServicePort"}}) which prevents from shutting down the endpoint bean, spring context and web application context cleanly.
> {noformat}
> org.apache.cxf:bus.id=cxf52615653,type=Bus.Service.Endpoint,service="{http://ws.xxx.xxxxxx.com/}Service",port="ServicePort"
> Thread [main] (Suspended (entry into method unregister in InstrumentationManagerImpl))	
> 	InstrumentationManagerImpl.unregister(ObjectName) line: 229	
> 	InstrumentationManagerImpl.unregister(ManagedComponent) line: 225	
> 	ServerImpl.destroy() line: 180	
> 	ServerRegistryImpl.preShutdown() line: 88	
> 	CXFBusLifeCycleManager.preShutdown() line: 84	
> 	CXFBusLifeCycleManager.postShutdown() line: 91	
> 	SpringBus.onApplicationEvent(ApplicationEvent) line: 94	
> 	SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent) line: 97	
> 	XmlWebApplicationContext(AbstractApplicationContext).publishEvent(ApplicationEvent) line: 303	
> 	XmlWebApplicationContext(AbstractApplicationContext).doClose() line: 1007	
> 	XmlWebApplicationContext(AbstractApplicationContext).close() line: 970	
> 	ContextLoaderListener(ContextLoader).closeWebApplicationContext(ServletContext) line: 384	
> 	ContextLoaderListener.contextDestroyed(ServletContextEvent) line: 78	
> 	StandardContext.listenerStop() line: 4245	
> 	StandardContext.stop() line: 4886	
> 	StandardHost(ContainerBase).stop() line: 1110	
> 	StandardEngine(ContainerBase).stop() line: 1110	
> 	StandardEngine.stop() line: 468	
> 	StandardService.stop() line: 604	
> 	StandardServer.stop() line: 788	
> 	Catalina.stop() line: 662	
> 	Catalina.start() line: 629	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
> 	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
> 	Method.invoke(Object, Object...) line: 601	
> 	Bootstrap.start() line: 289	
> 	Bootstrap.main(String[]) line: 414	
> {noformat}
> {noformat}
> org.apache.cxf:bus.id=cxf52615653,type=Bus.Service.Endpoint,service="{http://ws.xxx.xxxxx.com/}Service",port="Service"
> Thread [main] (Suspended (entry into method unregister in InstrumentationManagerImpl))	
> 	InstrumentationManagerImpl.unregister(ObjectName) line: 229	
> 	InstrumentationManagerImpl.unregister(ManagedComponent) line: 225	
> 	ServerImpl.destroy() line: 180	
> 	ServerRegistryImpl.preShutdown() line: 88	
> 	CXFBusLifeCycleManager.preShutdown() line: 84	
> 	CXFBusLifeCycleManager.postShutdown() line: 91	
> 	SpringBus.onApplicationEvent(ApplicationEvent) line: 94	
> 	SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent) line: 97	
> 	XmlWebApplicationContext(AbstractApplicationContext).publishEvent(ApplicationEvent) line: 303	
> 	XmlWebApplicationContext(AbstractApplicationContext).doClose() line: 1007	
> 	XmlWebApplicationContext(AbstractApplicationContext).close() line: 970	
> 	ContextLoaderListener(ContextLoader).closeWebApplicationContext(ServletContext) line: 384	
> 	ContextLoaderListener.contextDestroyed(ServletContextEvent) line: 78	
> 	StandardContext.listenerStop() line: 4245	
> 	StandardContext.stop() line: 4886	
> 	StandardHost(ContainerBase).stop() line: 1110	
> 	StandardEngine(ContainerBase).stop() line: 1110	
> 	StandardEngine.stop() line: 468	
> 	StandardService.stop() line: 604	
> 	StandardServer.stop() line: 788	
> 	Catalina.stop() line: 662	
> 	Catalina.start() line: 629	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
> 	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
> 	Method.invoke(Object, Object...) line: 601	
> 	Bootstrap.start() line: 289	
> 	Bootstrap.main(String[]) line: 414	
> {noformat}
> {noformat}
> org.apache.cxf:bus.id=cxf52615653,type=Bus
> Thread [main] (Suspended (entry into method unregister in InstrumentationManagerImpl))	
> 	InstrumentationManagerImpl.unregister(ObjectName) line: 229	
> 	InstrumentationManagerImpl.shutdown() line: 263	
> 	InstrumentationManagerImpl.postShutdown() line: 279	
> 	CXFBusLifeCycleManager.postShutdown() line: 97	
> 	SpringBus.onApplicationEvent(ApplicationEvent) line: 94	
> 	SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent) line: 97	
> 	XmlWebApplicationContext(AbstractApplicationContext).publishEvent(ApplicationEvent) line: 303	
> 	XmlWebApplicationContext(AbstractApplicationContext).doClose() line: 1007	
> 	XmlWebApplicationContext(AbstractApplicationContext).close() line: 970	
> 	ContextLoaderListener(ContextLoader).closeWebApplicationContext(ServletContext) line: 384	
> 	ContextLoaderListener.contextDestroyed(ServletContextEvent) line: 78	
> 	StandardContext.listenerStop() line: 4245	
> 	StandardContext.stop() line: 4886	
> 	StandardHost(ContainerBase).stop() line: 1110	
> 	StandardEngine(ContainerBase).stop() line: 1110	
> 	StandardEngine.stop() line: 468	
> 	StandardService.stop() line: 604	
> 	StandardServer.stop() line: 788	
> 	Catalina.stop() line: 662	
> 	Catalina.start() line: 629	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
> 	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
> 	Method.invoke(Object, Object...) line: 601	
> 	Bootstrap.start() line: 289	
> 	Bootstrap.main(String[]) line: 414	
> {noformat}
> {noformat}
> org.apache.cxf:bus.id=cxf52615653,type=Bus.Service.Endpoint,service="{http://ws.xxx.xxxxx.com/}Service",port="ServicePort"
> Thread [main] (Suspended (entry into method unregister in InstrumentationManagerImpl))	
> 	InstrumentationManagerImpl.unregister(ObjectName) line: 229	
> 	InstrumentationManagerImpl.unregister(ManagedComponent) line: 225	
> 	ServerImpl.destroy() line: 180	
> 	JAXWS22SpringEndpointImpl(EndpointImpl).stop() line: 263	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
> 	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
> 	Method.invoke(Object, Object...) line: 601	
> 	DisposableBeanAdapter.invokeCustomDestroyMethod(Method) line: 273	
> 	DisposableBeanAdapter.destroy() line: 199	
> 	DefaultListableBeanFactory(DefaultSingletonBeanRegistry).destroyBean(String, DisposableBean) line: 487	
> 	DefaultListableBeanFactory(DefaultSingletonBeanRegistry).destroySingleton(String) line: 463	
> 	DefaultListableBeanFactory(DefaultSingletonBeanRegistry).destroySingletons() line: 431	
> 	XmlWebApplicationContext(AbstractApplicationContext).destroyBeans() line: 1048	
> 	XmlWebApplicationContext(AbstractApplicationContext).doClose() line: 1022	
> 	XmlWebApplicationContext(AbstractApplicationContext).close() line: 970	
> 	ContextLoaderListener(ContextLoader).closeWebApplicationContext(ServletContext) line: 384	
> 	ContextLoaderListener.contextDestroyed(ServletContextEvent) line: 78	
> 	StandardContext.listenerStop() line: 4245	
> 	StandardContext.stop() line: 4886	
> 	StandardHost(ContainerBase).stop() line: 1110	
> 	StandardEngine(ContainerBase).stop() line: 1110	
> 	StandardEngine.stop() line: 468	
> 	StandardService.stop() line: 604	
> 	StandardServer.stop() line: 788	
> 	Catalina.stop() line: 662	
> 	Catalina.start() line: 629	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
> 	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
> 	Method.invoke(Object, Object...) line: 601	
> 	Bootstrap.start() line: 289	
> 	Bootstrap.main(String[]) line: 414	
> {noformat}
> For the completness, my spring context is as simple as:
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans"
> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> 	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
> 		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
> 		http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
> 		http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"
> 	xmlns:context="http://www.springframework.org/schema/context"
> 	xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:jaxrs="http://cxf.apache.org/jaxrs"
> 	xmlns:cxf="http://cxf.apache.org/core">
> 	<import resource="classpath:META-INF/cxf/cxf.xml" />
> 	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
> 	<cxf:bus />
> 	<bean id="instrumentationManager"
> 		class="org.apache.cxf.management.jmx.InstrumentationManagerImpl" >
> 		<property name="bus" ref="cxf" />
> 		<property name="enabled" value="true" />
> 		<property name="usePlatformMBeanServer" value="true" />
> 	</bean>
> 	<bean id="counterRepository" class="org.apache.cxf.management.counters.CounterRepository" >
> 		<property name="bus" ref="cxf" />
> 	</bean>
> 	<jaxws:endpoint id="webService" implementor="#service"
> 		address="${web.ws.uri}" />
> </beans>
> {code}
> While the class and the interface exposed as a service looks somewhat like this:
> {code}
> @WebService(endpointInterface="com.xxxxx.xxx.ws.IService", serviceName="Service" )
> @Component("service")
> public class Service implements IService {
>  // implementation here
> }
> {code}
> {code}
> @WebService
> public interface IService {
> 	@WebResult(name = "status")
> 	@WebMethod(operationName = "send")
> 	public boolean send(@WebParam(name = "message") SomeMessage message)
> 			throws SomeException;
> 	@Oneway
> 	@WebMethod(operationName = "doSend")
> 	public void doSend(@WebParam(name = "message") SomeMessage message)
> 			throws SomeException;
> }
> {code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CXF-3773) CXF unregisters MBeans for JAX-WS endpoints twice

Posted by "Aki Yoshida (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-3773?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13093897#comment-13093897 ] 

Aki Yoshida commented on CXF-3773:
----------------------------------

This problem can happen when the container tries to stop the endpoint after its associated bus has been stopped.

I'm fixing the clean up code of ServerImpl to prevent this problem from happening.
 


> CXF unregisters MBeans for JAX-WS endpoints twice
> -------------------------------------------------
>
>                 Key: CXF-3773
>                 URL: https://issues.apache.org/jira/browse/CXF-3773
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.4.2
>         Environment: Tomcat 6.0.33 / Spring 3.0.[56] / Java 1.[67]
>            Reporter: Dominik Drzewiecki
>            Assignee: Aki Yoshida
>
> MBeans created for JAX-WS endpoints do get unregistered twice during context shutdown.
> I've placed a breakpoint in {{org.apache.cxf.management.jmx.InstrumentationManagerImpl.unregister(ObjectName)}} and caught following stacks when reaching it. The first line shows the ObjectName being unregistered.
> You may notice that the first three stacks are observed during the {{CXFBus}} shutdown, and the fourth one during {{JAXWS22SpringEndpointImpl}}.
> The last invocation of {{org.apache.cxf.management.jmx.InstrumentationManagerImpl.unregister(ObjectName)}} results in {{javax.management.InstanceNotFoundException}} being thrown (the full message is {{"WARNING: Unregistering ManagedEndpoint failed. javax.management.InstanceNotFoundException: org.apache.cxf:bus.id=cxf52615653,type=Bus.Service.Endpoint,service="{http://ws.xxx.xxxxx.com/}Service",port="ServicePort"}}) which prevents from shutting down the endpoint bean, spring context and web application context cleanly.
> {noformat}
> org.apache.cxf:bus.id=cxf52615653,type=Bus.Service.Endpoint,service="{http://ws.xxx.xxxxxx.com/}Service",port="ServicePort"
> Thread [main] (Suspended (entry into method unregister in InstrumentationManagerImpl))	
> 	InstrumentationManagerImpl.unregister(ObjectName) line: 229	
> 	InstrumentationManagerImpl.unregister(ManagedComponent) line: 225	
> 	ServerImpl.destroy() line: 180	
> 	ServerRegistryImpl.preShutdown() line: 88	
> 	CXFBusLifeCycleManager.preShutdown() line: 84	
> 	CXFBusLifeCycleManager.postShutdown() line: 91	
> 	SpringBus.onApplicationEvent(ApplicationEvent) line: 94	
> 	SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent) line: 97	
> 	XmlWebApplicationContext(AbstractApplicationContext).publishEvent(ApplicationEvent) line: 303	
> 	XmlWebApplicationContext(AbstractApplicationContext).doClose() line: 1007	
> 	XmlWebApplicationContext(AbstractApplicationContext).close() line: 970	
> 	ContextLoaderListener(ContextLoader).closeWebApplicationContext(ServletContext) line: 384	
> 	ContextLoaderListener.contextDestroyed(ServletContextEvent) line: 78	
> 	StandardContext.listenerStop() line: 4245	
> 	StandardContext.stop() line: 4886	
> 	StandardHost(ContainerBase).stop() line: 1110	
> 	StandardEngine(ContainerBase).stop() line: 1110	
> 	StandardEngine.stop() line: 468	
> 	StandardService.stop() line: 604	
> 	StandardServer.stop() line: 788	
> 	Catalina.stop() line: 662	
> 	Catalina.start() line: 629	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
> 	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
> 	Method.invoke(Object, Object...) line: 601	
> 	Bootstrap.start() line: 289	
> 	Bootstrap.main(String[]) line: 414	
> {noformat}
> {noformat}
> org.apache.cxf:bus.id=cxf52615653,type=Bus.Service.Endpoint,service="{http://ws.xxx.xxxxx.com/}Service",port="Service"
> Thread [main] (Suspended (entry into method unregister in InstrumentationManagerImpl))	
> 	InstrumentationManagerImpl.unregister(ObjectName) line: 229	
> 	InstrumentationManagerImpl.unregister(ManagedComponent) line: 225	
> 	ServerImpl.destroy() line: 180	
> 	ServerRegistryImpl.preShutdown() line: 88	
> 	CXFBusLifeCycleManager.preShutdown() line: 84	
> 	CXFBusLifeCycleManager.postShutdown() line: 91	
> 	SpringBus.onApplicationEvent(ApplicationEvent) line: 94	
> 	SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent) line: 97	
> 	XmlWebApplicationContext(AbstractApplicationContext).publishEvent(ApplicationEvent) line: 303	
> 	XmlWebApplicationContext(AbstractApplicationContext).doClose() line: 1007	
> 	XmlWebApplicationContext(AbstractApplicationContext).close() line: 970	
> 	ContextLoaderListener(ContextLoader).closeWebApplicationContext(ServletContext) line: 384	
> 	ContextLoaderListener.contextDestroyed(ServletContextEvent) line: 78	
> 	StandardContext.listenerStop() line: 4245	
> 	StandardContext.stop() line: 4886	
> 	StandardHost(ContainerBase).stop() line: 1110	
> 	StandardEngine(ContainerBase).stop() line: 1110	
> 	StandardEngine.stop() line: 468	
> 	StandardService.stop() line: 604	
> 	StandardServer.stop() line: 788	
> 	Catalina.stop() line: 662	
> 	Catalina.start() line: 629	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
> 	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
> 	Method.invoke(Object, Object...) line: 601	
> 	Bootstrap.start() line: 289	
> 	Bootstrap.main(String[]) line: 414	
> {noformat}
> {noformat}
> org.apache.cxf:bus.id=cxf52615653,type=Bus
> Thread [main] (Suspended (entry into method unregister in InstrumentationManagerImpl))	
> 	InstrumentationManagerImpl.unregister(ObjectName) line: 229	
> 	InstrumentationManagerImpl.shutdown() line: 263	
> 	InstrumentationManagerImpl.postShutdown() line: 279	
> 	CXFBusLifeCycleManager.postShutdown() line: 97	
> 	SpringBus.onApplicationEvent(ApplicationEvent) line: 94	
> 	SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent) line: 97	
> 	XmlWebApplicationContext(AbstractApplicationContext).publishEvent(ApplicationEvent) line: 303	
> 	XmlWebApplicationContext(AbstractApplicationContext).doClose() line: 1007	
> 	XmlWebApplicationContext(AbstractApplicationContext).close() line: 970	
> 	ContextLoaderListener(ContextLoader).closeWebApplicationContext(ServletContext) line: 384	
> 	ContextLoaderListener.contextDestroyed(ServletContextEvent) line: 78	
> 	StandardContext.listenerStop() line: 4245	
> 	StandardContext.stop() line: 4886	
> 	StandardHost(ContainerBase).stop() line: 1110	
> 	StandardEngine(ContainerBase).stop() line: 1110	
> 	StandardEngine.stop() line: 468	
> 	StandardService.stop() line: 604	
> 	StandardServer.stop() line: 788	
> 	Catalina.stop() line: 662	
> 	Catalina.start() line: 629	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
> 	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
> 	Method.invoke(Object, Object...) line: 601	
> 	Bootstrap.start() line: 289	
> 	Bootstrap.main(String[]) line: 414	
> {noformat}
> {noformat}
> org.apache.cxf:bus.id=cxf52615653,type=Bus.Service.Endpoint,service="{http://ws.xxx.xxxxx.com/}Service",port="ServicePort"
> Thread [main] (Suspended (entry into method unregister in InstrumentationManagerImpl))	
> 	InstrumentationManagerImpl.unregister(ObjectName) line: 229	
> 	InstrumentationManagerImpl.unregister(ManagedComponent) line: 225	
> 	ServerImpl.destroy() line: 180	
> 	JAXWS22SpringEndpointImpl(EndpointImpl).stop() line: 263	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
> 	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
> 	Method.invoke(Object, Object...) line: 601	
> 	DisposableBeanAdapter.invokeCustomDestroyMethod(Method) line: 273	
> 	DisposableBeanAdapter.destroy() line: 199	
> 	DefaultListableBeanFactory(DefaultSingletonBeanRegistry).destroyBean(String, DisposableBean) line: 487	
> 	DefaultListableBeanFactory(DefaultSingletonBeanRegistry).destroySingleton(String) line: 463	
> 	DefaultListableBeanFactory(DefaultSingletonBeanRegistry).destroySingletons() line: 431	
> 	XmlWebApplicationContext(AbstractApplicationContext).destroyBeans() line: 1048	
> 	XmlWebApplicationContext(AbstractApplicationContext).doClose() line: 1022	
> 	XmlWebApplicationContext(AbstractApplicationContext).close() line: 970	
> 	ContextLoaderListener(ContextLoader).closeWebApplicationContext(ServletContext) line: 384	
> 	ContextLoaderListener.contextDestroyed(ServletContextEvent) line: 78	
> 	StandardContext.listenerStop() line: 4245	
> 	StandardContext.stop() line: 4886	
> 	StandardHost(ContainerBase).stop() line: 1110	
> 	StandardEngine(ContainerBase).stop() line: 1110	
> 	StandardEngine.stop() line: 468	
> 	StandardService.stop() line: 604	
> 	StandardServer.stop() line: 788	
> 	Catalina.stop() line: 662	
> 	Catalina.start() line: 629	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
> 	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
> 	Method.invoke(Object, Object...) line: 601	
> 	Bootstrap.start() line: 289	
> 	Bootstrap.main(String[]) line: 414	
> {noformat}
> For the completness, my spring context is as simple as:
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans"
> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> 	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
> 		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
> 		http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
> 		http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"
> 	xmlns:context="http://www.springframework.org/schema/context"
> 	xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:jaxrs="http://cxf.apache.org/jaxrs"
> 	xmlns:cxf="http://cxf.apache.org/core">
> 	<import resource="classpath:META-INF/cxf/cxf.xml" />
> 	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
> 	<cxf:bus />
> 	<bean id="instrumentationManager"
> 		class="org.apache.cxf.management.jmx.InstrumentationManagerImpl" >
> 		<property name="bus" ref="cxf" />
> 		<property name="enabled" value="true" />
> 		<property name="usePlatformMBeanServer" value="true" />
> 	</bean>
> 	<bean id="counterRepository" class="org.apache.cxf.management.counters.CounterRepository" >
> 		<property name="bus" ref="cxf" />
> 	</bean>
> 	<jaxws:endpoint id="webService" implementor="#service"
> 		address="${web.ws.uri}" />
> </beans>
> {code}
> While the class and the interface exposed as a service looks somewhat like this:
> {code}
> @WebService(endpointInterface="com.xxxxx.xxx.ws.IService", serviceName="Service" )
> @Component("service")
> public class Service implements IService {
>  // implementation here
> }
> {code}
> {code}
> @WebService
> public interface IService {
> 	@WebResult(name = "status")
> 	@WebMethod(operationName = "send")
> 	public boolean send(@WebParam(name = "message") SomeMessage message)
> 			throws SomeException;
> 	@Oneway
> 	@WebMethod(operationName = "doSend")
> 	public void doSend(@WebParam(name = "message") SomeMessage message)
> 			throws SomeException;
> }
> {code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Assigned] (CXF-3773) CXF unregisters MBeans for JAX-WS endpoints twice

Posted by "Aki Yoshida (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-3773?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aki Yoshida reassigned CXF-3773:
--------------------------------

    Assignee: Aki Yoshida

> CXF unregisters MBeans for JAX-WS endpoints twice
> -------------------------------------------------
>
>                 Key: CXF-3773
>                 URL: https://issues.apache.org/jira/browse/CXF-3773
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.4.2
>         Environment: Tomcat 6.0.33 / Spring 3.0.[56] / Java 1.[67]
>            Reporter: Dominik Drzewiecki
>            Assignee: Aki Yoshida
>
> MBeans created for JAX-WS endpoints do get unregistered twice during context shutdown.
> I've placed a breakpoint in {{org.apache.cxf.management.jmx.InstrumentationManagerImpl.unregister(ObjectName)}} and caught following stacks when reaching it. The first line shows the ObjectName being unregistered.
> You may notice that the first three stacks are observed during the {{CXFBus}} shutdown, and the fourth one during {{JAXWS22SpringEndpointImpl}}.
> The last invocation of {{org.apache.cxf.management.jmx.InstrumentationManagerImpl.unregister(ObjectName)}} results in {{javax.management.InstanceNotFoundException}} being thrown (the full message is {{"WARNING: Unregistering ManagedEndpoint failed. javax.management.InstanceNotFoundException: org.apache.cxf:bus.id=cxf52615653,type=Bus.Service.Endpoint,service="{http://ws.xxx.xxxxx.com/}Service",port="ServicePort"}}) which prevents from shutting down the endpoint bean, spring context and web application context cleanly.
> {noformat}
> org.apache.cxf:bus.id=cxf52615653,type=Bus.Service.Endpoint,service="{http://ws.xxx.xxxxxx.com/}Service",port="ServicePort"
> Thread [main] (Suspended (entry into method unregister in InstrumentationManagerImpl))	
> 	InstrumentationManagerImpl.unregister(ObjectName) line: 229	
> 	InstrumentationManagerImpl.unregister(ManagedComponent) line: 225	
> 	ServerImpl.destroy() line: 180	
> 	ServerRegistryImpl.preShutdown() line: 88	
> 	CXFBusLifeCycleManager.preShutdown() line: 84	
> 	CXFBusLifeCycleManager.postShutdown() line: 91	
> 	SpringBus.onApplicationEvent(ApplicationEvent) line: 94	
> 	SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent) line: 97	
> 	XmlWebApplicationContext(AbstractApplicationContext).publishEvent(ApplicationEvent) line: 303	
> 	XmlWebApplicationContext(AbstractApplicationContext).doClose() line: 1007	
> 	XmlWebApplicationContext(AbstractApplicationContext).close() line: 970	
> 	ContextLoaderListener(ContextLoader).closeWebApplicationContext(ServletContext) line: 384	
> 	ContextLoaderListener.contextDestroyed(ServletContextEvent) line: 78	
> 	StandardContext.listenerStop() line: 4245	
> 	StandardContext.stop() line: 4886	
> 	StandardHost(ContainerBase).stop() line: 1110	
> 	StandardEngine(ContainerBase).stop() line: 1110	
> 	StandardEngine.stop() line: 468	
> 	StandardService.stop() line: 604	
> 	StandardServer.stop() line: 788	
> 	Catalina.stop() line: 662	
> 	Catalina.start() line: 629	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
> 	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
> 	Method.invoke(Object, Object...) line: 601	
> 	Bootstrap.start() line: 289	
> 	Bootstrap.main(String[]) line: 414	
> {noformat}
> {noformat}
> org.apache.cxf:bus.id=cxf52615653,type=Bus.Service.Endpoint,service="{http://ws.xxx.xxxxx.com/}Service",port="Service"
> Thread [main] (Suspended (entry into method unregister in InstrumentationManagerImpl))	
> 	InstrumentationManagerImpl.unregister(ObjectName) line: 229	
> 	InstrumentationManagerImpl.unregister(ManagedComponent) line: 225	
> 	ServerImpl.destroy() line: 180	
> 	ServerRegistryImpl.preShutdown() line: 88	
> 	CXFBusLifeCycleManager.preShutdown() line: 84	
> 	CXFBusLifeCycleManager.postShutdown() line: 91	
> 	SpringBus.onApplicationEvent(ApplicationEvent) line: 94	
> 	SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent) line: 97	
> 	XmlWebApplicationContext(AbstractApplicationContext).publishEvent(ApplicationEvent) line: 303	
> 	XmlWebApplicationContext(AbstractApplicationContext).doClose() line: 1007	
> 	XmlWebApplicationContext(AbstractApplicationContext).close() line: 970	
> 	ContextLoaderListener(ContextLoader).closeWebApplicationContext(ServletContext) line: 384	
> 	ContextLoaderListener.contextDestroyed(ServletContextEvent) line: 78	
> 	StandardContext.listenerStop() line: 4245	
> 	StandardContext.stop() line: 4886	
> 	StandardHost(ContainerBase).stop() line: 1110	
> 	StandardEngine(ContainerBase).stop() line: 1110	
> 	StandardEngine.stop() line: 468	
> 	StandardService.stop() line: 604	
> 	StandardServer.stop() line: 788	
> 	Catalina.stop() line: 662	
> 	Catalina.start() line: 629	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
> 	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
> 	Method.invoke(Object, Object...) line: 601	
> 	Bootstrap.start() line: 289	
> 	Bootstrap.main(String[]) line: 414	
> {noformat}
> {noformat}
> org.apache.cxf:bus.id=cxf52615653,type=Bus
> Thread [main] (Suspended (entry into method unregister in InstrumentationManagerImpl))	
> 	InstrumentationManagerImpl.unregister(ObjectName) line: 229	
> 	InstrumentationManagerImpl.shutdown() line: 263	
> 	InstrumentationManagerImpl.postShutdown() line: 279	
> 	CXFBusLifeCycleManager.postShutdown() line: 97	
> 	SpringBus.onApplicationEvent(ApplicationEvent) line: 94	
> 	SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent) line: 97	
> 	XmlWebApplicationContext(AbstractApplicationContext).publishEvent(ApplicationEvent) line: 303	
> 	XmlWebApplicationContext(AbstractApplicationContext).doClose() line: 1007	
> 	XmlWebApplicationContext(AbstractApplicationContext).close() line: 970	
> 	ContextLoaderListener(ContextLoader).closeWebApplicationContext(ServletContext) line: 384	
> 	ContextLoaderListener.contextDestroyed(ServletContextEvent) line: 78	
> 	StandardContext.listenerStop() line: 4245	
> 	StandardContext.stop() line: 4886	
> 	StandardHost(ContainerBase).stop() line: 1110	
> 	StandardEngine(ContainerBase).stop() line: 1110	
> 	StandardEngine.stop() line: 468	
> 	StandardService.stop() line: 604	
> 	StandardServer.stop() line: 788	
> 	Catalina.stop() line: 662	
> 	Catalina.start() line: 629	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
> 	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
> 	Method.invoke(Object, Object...) line: 601	
> 	Bootstrap.start() line: 289	
> 	Bootstrap.main(String[]) line: 414	
> {noformat}
> {noformat}
> org.apache.cxf:bus.id=cxf52615653,type=Bus.Service.Endpoint,service="{http://ws.xxx.xxxxx.com/}Service",port="ServicePort"
> Thread [main] (Suspended (entry into method unregister in InstrumentationManagerImpl))	
> 	InstrumentationManagerImpl.unregister(ObjectName) line: 229	
> 	InstrumentationManagerImpl.unregister(ManagedComponent) line: 225	
> 	ServerImpl.destroy() line: 180	
> 	JAXWS22SpringEndpointImpl(EndpointImpl).stop() line: 263	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
> 	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
> 	Method.invoke(Object, Object...) line: 601	
> 	DisposableBeanAdapter.invokeCustomDestroyMethod(Method) line: 273	
> 	DisposableBeanAdapter.destroy() line: 199	
> 	DefaultListableBeanFactory(DefaultSingletonBeanRegistry).destroyBean(String, DisposableBean) line: 487	
> 	DefaultListableBeanFactory(DefaultSingletonBeanRegistry).destroySingleton(String) line: 463	
> 	DefaultListableBeanFactory(DefaultSingletonBeanRegistry).destroySingletons() line: 431	
> 	XmlWebApplicationContext(AbstractApplicationContext).destroyBeans() line: 1048	
> 	XmlWebApplicationContext(AbstractApplicationContext).doClose() line: 1022	
> 	XmlWebApplicationContext(AbstractApplicationContext).close() line: 970	
> 	ContextLoaderListener(ContextLoader).closeWebApplicationContext(ServletContext) line: 384	
> 	ContextLoaderListener.contextDestroyed(ServletContextEvent) line: 78	
> 	StandardContext.listenerStop() line: 4245	
> 	StandardContext.stop() line: 4886	
> 	StandardHost(ContainerBase).stop() line: 1110	
> 	StandardEngine(ContainerBase).stop() line: 1110	
> 	StandardEngine.stop() line: 468	
> 	StandardService.stop() line: 604	
> 	StandardServer.stop() line: 788	
> 	Catalina.stop() line: 662	
> 	Catalina.start() line: 629	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
> 	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
> 	Method.invoke(Object, Object...) line: 601	
> 	Bootstrap.start() line: 289	
> 	Bootstrap.main(String[]) line: 414	
> {noformat}
> For the completness, my spring context is as simple as:
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans"
> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> 	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
> 		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
> 		http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
> 		http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"
> 	xmlns:context="http://www.springframework.org/schema/context"
> 	xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:jaxrs="http://cxf.apache.org/jaxrs"
> 	xmlns:cxf="http://cxf.apache.org/core">
> 	<import resource="classpath:META-INF/cxf/cxf.xml" />
> 	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
> 	<cxf:bus />
> 	<bean id="instrumentationManager"
> 		class="org.apache.cxf.management.jmx.InstrumentationManagerImpl" >
> 		<property name="bus" ref="cxf" />
> 		<property name="enabled" value="true" />
> 		<property name="usePlatformMBeanServer" value="true" />
> 	</bean>
> 	<bean id="counterRepository" class="org.apache.cxf.management.counters.CounterRepository" >
> 		<property name="bus" ref="cxf" />
> 	</bean>
> 	<jaxws:endpoint id="webService" implementor="#service"
> 		address="${web.ws.uri}" />
> </beans>
> {code}
> While the class and the interface exposed as a service looks somewhat like this:
> {code}
> @WebService(endpointInterface="com.xxxxx.xxx.ws.IService", serviceName="Service" )
> @Component("service")
> public class Service implements IService {
>  // implementation here
> }
> {code}
> {code}
> @WebService
> public interface IService {
> 	@WebResult(name = "status")
> 	@WebMethod(operationName = "send")
> 	public boolean send(@WebParam(name = "message") SomeMessage message)
> 			throws SomeException;
> 	@Oneway
> 	@WebMethod(operationName = "doSend")
> 	public void doSend(@WebParam(name = "message") SomeMessage message)
> 			throws SomeException;
> }
> {code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira