0
votes

I have to do some remote debug of Alfresco 4.0 in Tomcat_6.0.35. The Offical documentation say that I should set env variable

JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n, address=8082

and I did it, but it works only with startup.bat . Alfresco 4.0 start Tomcat as windows service and call this:

C:\Alfresco\tomcat\bin\tomcat6.exe //RS//alfrescoTomcat

So I need to do remote debug of this servise and I try to change default service invoke of Tomcat to:

1) c:\Alfresco\tomcat\bin\tomcat6.exe //RS//alfrescoTomcat --JvmOptions=-Xdebug;-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8082;

or

2) c:\Alfresco\tomcat\bin\tomcat6.exe //TS//alfrescoTomcat --JvmOptions=-Xdebug;-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8082;

It successfuly starts Tomcat and I can debug this server, but Alfresco 4.0 throw exception or hangs...what should I do for debug this service?

my log:

Listening for transport dt_socket at address: 8082 11.04.2012 19:13:28 org.apache.catalina.core.AprLifecycleListener init INFO: Loaded APR based Apache Tomcat Native library 1.1.20. 11.04.2012 19:13:28 org.apache.catalina.core.AprLifecycleListener init INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true]. 11.04.2012 19:13:28 org.apache.coyote.http11.Http11AprProtocol init INFO: Initializing Coyote HTTP/1.1 on http-8080 11.04.2012 19:13:28 org.apache.coyote.ajp.AjpAprProtocol init INFO: Initializing Coyote AJP/1.3 on ajp-8009 11.04.2012 19:13:29 org.apache.coyote.http11.Http11Protocol init INFO: Initializing Coyote HTTP/1.1 on http-8443 11.04.2012 19:13:29 org.apache.catalina.startup.Catalina load INFO: Initialization processed in 1145 ms 11.04.2012 19:13:29 org.apache.catalina.core.StandardService start INFO: Starting service Catalina 11.04.2012 19:13:29 org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/6.0.29 11.04.2012 19:13:29 org.apache.catalina.startup.HostConfig deployDescriptor INFO: Deploying configuration descriptor alfresco.xml 11.04.2012 19:13:30 org.apache.catalina.core.StandardContext addApplicationListener INFO: The listener "org.apache.myfaces.webapp.StartupServletContextListener" is already configured for this context. The duplicate definitio n has been ignored. 11.04.2012 19:13:32 org.apache.catalina.core.ApplicationContext log INFO: Initializing Spring root WebApplicationContext

...

e.catalina.startup.HostConfig.deployApps(HostConfig.java:498) e.catalina.startup.HostConfig.start(HostConfig.java:1277) e.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) e.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) e.catalina.core.ContainerBase.start(ContainerBase.java:1053) e.catalina.core.StandardHost.start(StandardHost.java:785) e.catalina.core.ContainerBase.start(ContainerBase.java:1045) e.catalina.core.StandardEngine.start(StandardEngine.java:445) e.catalina.core.StandardService.start(StandardService.java:519) e.catalina.core.StandardServer.start(StandardServer.java:710) e.catalina.startup.Catalina.start(Catalina.java:581) ct.NativeMethodAccessorImpl.invoke0(Native Method) ct.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ct.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) .reflect.Method.invoke(Method.java:597) e.catalina.startup.Bootstrap.start(Bootstrap.java:289) e.catalina.startup.Bootstrap.main(Bootstrap.java:414) gframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionService' defined in class path core-services-context.xml]: Cannot resolve reference to bean 'transactionManager' while setting bean property 'transacti xception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' h resource [alfresco/hibernate-context.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean proper nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFact s path resource [alfresco/hibernate-context.xml]: Invocation of init method failed; nested exception is org.hibernate.Hi bernate Dialect must be explicitly set gframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328) gframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:10

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFacto

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:4

gframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) gframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) gframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) gframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) gframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

gframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path hibernate-context.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class esco/hibernate-context.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Hib be explicitly set gframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328) gframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:10

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFacto

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:4

gframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) gframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) gframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) gframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) gframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

gframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path res rnate-context.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Hibernate Di itly set gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.ja

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:4

gframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) gframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) gframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) gframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) gframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

nate.HibernateException: Hibernate Dialect must be explicitly set nate.dialect.DialectFactory.determineDialect(DialectFactory.java:59) nate.dialect.DialectFactory.buildDialect(DialectFactory.java:39) nate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:426) nate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:128) nate.cfg.Configuration.buildSettings(Configuration.java:2073) nate.cfg.Configuration.buildSessionFactory(Configuration.java:1298) gframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:860) gframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:779) gframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.ja

org.apache.catalina.core.StandardContext listenerStart nding context initialized event to listener instance of class org.alfresco.web.app.ContextListener beans.factory.BeanCreationException: Error creating bean with name 'encryptionKeysRegistry' defined in class path resour ion-context.xml]: Cannot resolve reference to bean 'transactionService' while setting bean property 'transactionService' s org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionService' defined in [alfresco/core-services-context.xml]: Cannot resolve reference to bean 'transactionManager' while setting bean property '; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transacti n class path resource [alfresco/hibernate-context.xml]: Cannot resolve reference to bean 'sessionFactory' while setting onFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ' ned in class path resource [alfresco/hibernate-context.xml]: Invocation of init method failed; nested exception is org.h ception: Hibernate Dialect must be explicitly set gframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328) gframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:10

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFacto

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:4

gframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) gframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) gframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) gframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) gframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580

gframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:89

gframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425) gframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276) gframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197) gframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) sco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:63) e.catalina.core.StandardContext.listenerStart(StandardContext.java:4135) e.catalina.core.StandardContext.start(StandardContext.java:4630) e.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) e.catalina.core.ContainerBase.addChild(ContainerBase.java:771) e.catalina.core.StandardHost.addChild(StandardHost.java:546) e.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637) e.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563) e.catalina.startup.HostConfig.deployApps(HostConfig.java:498) e.catalina.startup.HostConfig.start(HostConfig.java:1277) e.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) e.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) e.catalina.core.ContainerBase.start(ContainerBase.java:1053) e.catalina.core.StandardHost.start(StandardHost.java:785) e.catalina.core.ContainerBase.start(ContainerBase.java:1045) e.catalina.core.StandardEngine.start(StandardEngine.java:445) e.catalina.core.StandardService.start(StandardService.java:519) e.catalina.core.StandardServer.start(StandardServer.java:710) e.catalina.startup.Catalina.start(Catalina.java:581) ct.NativeMethodAccessorImpl.invoke0(Native Method) ct.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ct.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) .reflect.Method.invoke(Method.java:597) e.catalina.startup.Bootstrap.start(Bootstrap.java:289) e.catalina.startup.Bootstrap.main(Bootstrap.java:414) gframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionService' defined in class path core-services-context.xml]: Cannot resolve reference to bean 'transactionManager' while setting bean property 'transacti xception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' h resource [alfresco/hibernate-context.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean proper nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFact s path resource [alfresco/hibernate-context.xml]: Invocation of init method failed; nested exception is org.hibernate.Hi bernate Dialect must be explicitly set gframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328) gframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:10

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFacto

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:4

gframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) gframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) gframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) gframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) gframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

gframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path hibernate-context.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class esco/hibernate-context.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Hib be explicitly set gframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328) gframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:10

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFacto

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:4

gframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) gframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) gframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) gframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) gframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

gframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path res rnate-context.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Hibernate Di itly set gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.ja

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:4

gframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) gframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) gframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) gframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) gframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

nate.HibernateException: Hibernate Dialect must be explicitly set nate.dialect.DialectFactory.determineDialect(DialectFactory.java:59) nate.dialect.DialectFactory.buildDialect(DialectFactory.java:39) nate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:426) nate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:128) nate.cfg.Configuration.buildSettings(Configuration.java:2073) nate.cfg.Configuration.buildSessionFactory(Configuration.java:1298) gframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:860) gframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:779) gframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory

gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.ja

com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextInitialized AX-WS context listener initializing com.sun.xml.ws.transport.http.servlet.WSServletDelegate AX-WS servlet initializing org.apache.catalina.core.StandardContext start erStart org.apache.catalina.core.StandardContext start fresco] startup failed due to previous errors com.sun.xml.ws.transport.http.servlet.WSServletDelegate destroy AX-WS servlet destroyed com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextDestroyed AX-WS context listener destroyed org.apache.catalina.core.ApplicationContext log root WebApplicationContext org.apache.catalina.core.ApplicationContext log log4j org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap ication [/alfresco] created a ThreadLocal with key of type [null] (value [com.sun.xml.bind.v2.ClassFactory$1@2552fafd]) [java.util.WeakHashMap] (value [{class javax.xml.bind.annotation.W3CDomHandler=java.lang.ref.WeakReference@5bee9e20}]) b it when the web application was stopped. This is very likely to create a memory leak. org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap ication [/alfresco] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@ecf7607 pe [org.apache.cxf.bus.CXFBusImpl] (value [org.apache.cxf.bus.CXFBusImpl@564dcd29]) but failed to remove it when the web pped. This is very likely to create a memory leak. ger.repositorySelector was null likely due to error in class reloading, using NOPLoggerRepository. vocationTargetException

1
They key line in the exception is HibernateException: Hibernate Dialect must be explicitly set - are you sure you're not changing anything else when you start Alfresco in debug, as it looks like you are loosing your database settings with your change... - Gagravarr
Yes, my command line parameters were wrong. When parameter is prefixed with "--" previous settings are removed. If I use prefix "++", previous settings saved and everything is working correctly. So with call: "C:\Alfresco\tomcat\bin\tomcat6.exe //RS//alfrescoTomcat ++JvmOptions "-Xdebug;-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"" all works correctly :) thanks! - Kot4
You should probably post this as an answer and accept it, then it's clearer to people coming later that the problem is solved and what the trick is - Gagravarr

1 Answers

1
votes

Yes, my command line parameters were wrong. When parameter is prefixed with "--" previous settings are removed. If I use prefix "++", previous settings saved and everything is working correctly. So with call:

C:\Alfresco\tomcat\bin\tomcat6.exe //RS//alfrescoTomcat ++JvmOptions "-Xdebug;-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"

all works correctly :) thanks!