-
15. Re: Why JBoss ESB doesn't delete services from registry when
tfennelly Oct 23, 2008 6:00 AM (in response to denix)Hi Denys.
Sorry for not getting back faster. What you sent me was incomplete. I was missing some source and dependencies, so I wasn't able to run it up.
Anyway, sounds like you have some things to try out there from Daniel and Kevin's posts. -
16. Re: Why JBoss ESB doesn't delete services from registry when
denix Oct 23, 2008 7:08 AM (in response to denix)"beve" wrote:
You might have seen this already but this link might be useful: http://forum.springframework.org/showthread.php?t=30801
The suggestion here is to use use classloading isolation. You can do this by isolating the .esb archive as described here : http://www.jboss.org/community/docs/DOC-10339
Regards,
/Daniel
Daniel,
I'm traing this but I have exception.
Here is my deployment.xml<?xml version="1.0" encoding="UTF-8"?> <jbossesb-deployment> <depends>jboss.esb:deployment=spring.esb</depends> <loader-repository> org.jboss.soa.esb:loader=SwiftingService <loader-repository-config> java2ParentDelegaton=false </loader-repository-config> </loader-repository> </jbossesb-deployment>
And here exception
java.lang.RuntimeException: org.jboss.soa.esb.listeners.lifecycle.ManagedLifecyc
leException: Unexpected exception while instantiating managed instance
at org.jboss.soa.esb.listeners.config.Configuration.create(Configuration
.java:132)
at org.jboss.soa.esb.listeners.config.JBoss4ESBDeployment.startService(J
Boss4ESBDeployment.java:82)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanS
upport.java:289)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMB
eanSupport.java:245)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceControl
ler.java:978)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:417)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy44.start(Unknown Source)
at org.jboss.soa.esb.listeners.config.JBoss4ESBDeployer.start(JBoss4ESBD
eployer.java:432)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractIntercept
or.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelM
BeanOperationInterceptor.java:142)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy9.deploy(Unknown Source)
at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymen
tScanner.java:421)
at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentS
canner.java:634)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.
doScan(AbstractDeploymentScanner.java:263)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.
loop(AbstractDeploymentScanner.java:274)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.
run(AbstractDeploymentScanner.java:225)
Caused by: org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException: Unex
pected exception while instantiating managed instance
at org.jboss.soa.esb.listeners.LifecycleUtil.getManagedInstances(Lifecyc
leUtil.java:158)
at org.jboss.soa.esb.listeners.LifecycleUtil.getListeners(LifecycleUtil.
java:75)
at org.jboss.soa.esb.listeners.config.Configuration.create(Configuration
.java:107)
... 46 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
orAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
onstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.jboss.soa.esb.listeners.LifecycleUtil.getManagedInstances(Lifecyc
leUtil.java:154)
... 48 more
Caused by: org.jboss.soa.esb.ConfigurationException: Unexpected exception during
lifecycle initialisation
at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.initiali
se(ActionProcessingPipeline.java:264)
at org.jboss.soa.esb.listeners.ScheduleListener.(ScheduleListener.
java:95)
... 53 more
Caused by: org.jboss.soa.esb.actions.ActionLifecycleException: BeansException ca
ught in loadSpringToc :
at org.jboss.soa.esb.actions.AbstractSpringAction.loadSpringIoc(Abstract
SpringAction.java:219)
at org.jboss.soa.esb.actions.AbstractSpringAction.initializeSpring(Abstr
actSpringAction.java:165)
at org.jboss.soa.esb.actions.AbstractSpringAction.initialise(AbstractSpr
ingAction.java:109)
at org.jboss.soa.esb.listeners.message.OverriddenActionLifecycleProcesso
r.initialise(OverriddenActionLifecycleProcessor.java:123)
at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.initiali
se(ActionProcessingPipeline.java:259)
... 54 more
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Unexp
ected exception parsing XML document from class path resource [applicationContex
t-dao.xml]; nested exception is java.lang.NullPointerException
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadB
eanDefinitions(XmlBeanDefinitionReader.java:375)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBea
nDefinitions(XmlBeanDefinitionReader.java:303)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBea
nDefinitions(XmlBeanDefinitionReader.java:280)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:131)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:147)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:173)
at org.springframework.context.support.AbstractXmlApplicationContext.loa
dBeanDefinitions(AbstractXmlApplicationContext.java:112)
at org.springframework.context.support.AbstractXmlApplicationContext.loa
dBeanDefinitions(AbstractXmlApplicationContext.java:79)
at org.springframework.context.support.AbstractRefreshableApplicationCon
text.refreshBeanFactory(AbstractRefreshableApplicationContext.java:101)
at org.springframework.context.support.AbstractApplicationContext.obtain
FreshBeanFactory(AbstractApplicationContext.java:389)
at org.springframework.context.support.AbstractApplicationContext.refres
h(AbstractApplicationContext.java:324)
at org.springframework.context.support.ClassPathXmlApplicationContext.<i
nit>(ClassPathXmlApplicationContext.java:91)
at org.springframework.context.support.ClassPathXmlApplicationContext.<i
nit>(ClassPathXmlApplicationContext.java:75)
at org.springframework.context.support.ClassPathXmlApplicationContext.<i
nit>(ClassPathXmlApplicationContext.java:65)
at org.jboss.soa.esb.actions.AbstractSpringAction.loadSpringIoc(Abstract
SpringAction.java:212)
... 58 more
Caused by: java.lang.NullPointerException
at org.jboss.mx.loading.RepositoryClassLoader.findClass(RepositoryClassL
oader.java:630)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryCl
assLoader.java:474)
at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassL
oader.java:415)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at sun.reflect.GeneratedMethodAccessor108.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.commons.logging.impl.Log4jProxy.isEnabledFor(Log4jProxy.ja
va:318)
at org.apache.commons.logging.impl.Log4jProxy.isTraceEnabled(Log4jProxy.
java:228)
at org.apache.commons.logging.impl.Log4JLogger.isTraceEnabled(Log4JLogge
r.java:273)
at org.springframework.beans.factory.xml.PluggableSchemaResolver.resolve
Entity(PluggableSchemaResolver.java:112)
at org.springframework.beans.factory.xml.DelegatingEntityResolver.resolv
eEntity(DelegatingEntityResolver.java:86)
at org.springframework.beans.factory.xml.ResourceEntityResolver.resolveE
ntity(ResourceEntityResolver.java:73)
at org.apache.xerces.util.EntityResolverWrapper.resolveEntity(Unknown So
urce)
at org.apache.xerces.impl.XMLEntityManager.resolveEntity(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaLoader.resolveDocument(Unknown Sou
rce)
at org.apache.xerces.impl.xs.XMLSchemaValidator.findSchemaGrammar(Unknow
n Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unkno
wn Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown Sou
rce)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unkn
own Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.s
canRootElementHook(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContent
Dispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un
known Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocum
ent(DefaultDocumentLoader.java:76)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadB
eanDefinitions(XmlBeanDefinitionReader.java:351)
... 72 more
19:06:25,881 ERROR [URLDeploymentScanner] Incomplete Deployment listing:
--- MBeans waiting for other MBeans ---
ObjectName: jboss.esb:deployment=service-swifting-1.0.esb
State: FAILED
Reason: java.lang.RuntimeException: org.jboss.soa.esb.listeners.lifecycle.Mana
gedLifecycleException: Unexpected exception while instantiating managed instance
I Depend On:
jboss.esb:deployment=jbossesb.esb
jboss.esb:deployment=spring.esb
--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: jboss.esb:deployment=service-swifting-1.0.esb
State: FAILED
Reason: java.lang.RuntimeException: org.jboss.soa.esb.listeners.lifecycle.Mana
gedLifecycleException: Unexpected exception while instantiating managed instance
I Depend On:
jboss.esb:deployment=jbossesb.esb
jboss.esb:deployment=spring.esb -
17. Re: Why JBoss ESB doesn't delete services from registry when
kconner Oct 23, 2008 7:22 AM (in response to denix)The isolation is unlikely to help as the Spring classes are not covered by the isolated classloader. The leak will still occur.
We need to take a look at the way in which we are integrating with spring and make sure that all resources are tidied up correctly on undeploy. -
18. Re: Why JBoss ESB doesn't delete services from registry when
beve Oct 23, 2008 7:22 AM (in response to denix)Ok, the scoping looks fine. I'd really need to try this as I cannot reproduce the error.
Could you modify that you sent Tom so that I can run this and try to find out what is happening? Tom mentioned that he could not get it to run in a previous post that is way I'm asking for this.
Thanks,
/Daniel -
19. Re: Why JBoss ESB doesn't delete services from registry when
denix Oct 23, 2008 7:41 AM (in response to denix)okey, I will prepare small project which docs which will show all bugs and then send it all to you
-
20. Re: Why JBoss ESB doesn't delete services from registry when
denix Oct 23, 2008 11:28 PM (in response to denix)Because of lack of time I decided to write all our project characteristics:
Spring version - 2.5.5
Hibernate version - 3.2.4.sp1
deployment.xml<?xml version="1.0" encoding="UTF-8"?> <jbossesb-deployment> <depends>jboss.esb:deployment=spring.esb</depends> </jbossesb-deployment>
jboss-esb.xml
<?xml version = "1.0" encoding = "UTF-8"?>
<schedule-provider name="scheduler">
<simple-schedule scheduleid="xServiceScheduler"
frequency="180" />
</schedule-provider>
<scheduled-listener
name="xprocess_scheduled_listener"
scheduleidref="xServiceScheduler"
event-processor="dse.x.esb.MsgComposer" />
XActionProcessor.javapackage ds.x.esb; import java.util.List; import java.util.Map; import org.apache.log4j.Logger; import org.jboss.soa.esb.actions.AbstractSpringAction; import org.jboss.soa.esb.actions.ActionLifecycleException; import org.jboss.soa.esb.helpers.ConfigTree; import org.jboss.soa.esb.message.Message; import org.springframework.beans.BeansException; import ds.x.Netting; import ds.x.Util; import ds.persistence.entity.CashFlow; /** * ESB netting service. */ public class XActionProcessor extends AbstractSpringAction { private static final Logger logger = Logger .getLogger(NettingActionProcessor.class); private OrdersDAO ordersDAO; public XActionProcessor(ConfigTree _config) { super(_config); } /** * Invoked by ESB runtime */ @Override public void initialise() throws ActionLifecycleException { super.initialise(); try { ordersDAO = (OrdersDAO getBeanFactory().getBean("ordersDAO"); } catch (BeansException bee) { logger.error(bee); throw new ActionLifecycleException(bee); } } public Message xProcess(Message msg) throws Exception { ordersDAO.getAll(); //after hot re-deploying it will not return all orders List<Order> orders = ordersDAO.getOrdersByStatus("Completed"); //if getOrdersByStatus method uses HQL after hot re-deploying it will throw an exception that couldn't find mapping for class Order (we map using annotations) return msg; } }
also see my comments in method xProcess for more error-prone behaviour.
All other bugs you may reproduce with this code. applicationContext-dao.xml and all Spring beans are packed in separate jar which included to ESB archive. -
21. Re: Why JBoss ESB doesn't delete services from registry when
beve Oct 24, 2008 5:02 AM (in response to denix)Hi,
I've created a quickstart that is supposed to simulate your application. It uses spring and hibernate and the AbstractSpringAction mimics the code you posted.
But I'm not able to reproduce this issue. If you like I can send the quickstart to you and perhaps you can see if there is something that different that I've missed?
If you send me an email I'll reply and send you the quickstart.
Regards,
/Daniel -
22. Re: Why JBoss ESB doesn't delete services from registry when
beve Oct 28, 2008 7:10 AM (in response to denix)Hi Denys,
Thanks for the update/new example that you sent!
I've looked into this and this is just an update on what I've got so far.
The exception that you posted (not the original one):Caused by: java.lang.NullPointerException
at org.jboss.mx.loading.RepositoryClassLoader.findClass(RepositoryClassLoader.java:630)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:474)
at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:415)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at org.springframework.core.NestedRuntimeException.getMessage(NestedRuntimeException.java:67)
at java.lang.Throwable.getLocalizedMessage(Throwable.java:267)
at java.lang.Throwable.toString(Throwable.java:344)
at org.springframework.beans.factory.BeanCreationException.toString(BeanCreationException.java:150)
at org.apache.log4j.spi.VectorWriter.println(ThrowableInformation.java:97)
at java.lang.Throwable.printStackTrace(Throwable.java:510)
at org.springframework.beans.factory.BeanCreationException.printStackTrace(BeanCreationException.java:176)
at org.apache.log4j.spi.ThrowableInformation.getThrowableStrRep(ThrowableInformation.java:59)
at org.apache.log4j.spi.LoggingEvent.getThrowableStrRep(LoggingEvent.java:342)
at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:304)
This was caused by the the spring jar being included in your .esb archive. This jar should only reside in the spring.esb archive.
I'll look into the other issue(s).
Regards,
/Daniel -
23. Re: Why JBoss ESB doesn't delete services from registry when
denix Oct 29, 2008 12:05 AM (in response to denix)Thanks to Daniel currently I cannot reproduce all hot deployment issues. Also services successfully unregister from registry when overwriting.
In my case I removed hibernate & spring jars from my .esb file, i.e. if you use maven just use provide
and copied removed jars to my servers /lib directory.
These are the jars have been added in my case:
persistence-api-1.0.jar
hibernate-annotations-3.2.1.ga.jar
hibernate-3.2.4.sp1.jar
ehcache-1.6.0-beta1.jar
And removed old one:
hibernate3.jar
hibernate-annotations.jar
Also I updated spring.esb with my own spring.jar version.
It's works!