|
I am having difficulty getting Geronimo 2.2.1 virtual hosts to work. I
have followed the documentation And once I got past the whole GBEANs configuration syntax its seems straight forward enough. I've gotten the server to run and the test app to deploy but it always deploys to the default host. I can't figure out what I'm missing. Any advice would be appreciated. I have attached the tomcat configuration from my config.xml and the geronimo-web.xml. The test application itself is a single jsp. config.xml (line breaks added for clarity): <module name="org.apache.geronimo.configs/tomcat6/2.2.1/car"> <gbean name="org.apache.geronimo.configs/tomcat6/2.2.1/car? ServiceModule=org.apache.geronimo.configs/tomcat6/2.2.1/car,j2eeType=Hos t,name=TestHost2" gbeanInfo="org.apache.geronimo.tomcat.HostGBean"> <attribute name="className">org.apache.catalina.core.StandardHost</attribute> <attribute name="initParams">name=testhost2.vhainc.local appBase= workDir=work</attribute> <reference name="Engine"> <pattern> <name>TomcatEngine</name> </pattern> </reference> </gbean> </module> geronimo-web.xml <?xml version="1.0" encoding="UTF-8" standalone="no"?> <web:web-app xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0" xmlns:client="http://geronimo.apache.org/xml/ns/j2ee/application-client- 2.0" xmlns:conn="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2" xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2" xmlns:ejb="http://openejb.apache.org/xml/ns/openejb-jar-2.2" xmlns:log="http://geronimo.apache.org/xml/ns/loginconfig-2.0" xmlns:name="http://geronimo.apache.org/xml/ns/naming-1.2" xmlns:pers="http://java.sun.com/xml/ns/persistence" xmlns:pkgen="http://openejb.apache.org/xml/ns/pkgen-2.1" xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0" xmlns:web="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"> <dep:environment> <dep:moduleId> <dep:groupId>default</dep:groupId> <dep:artifactId>test</dep:artifactId> <dep:version>1.0</dep:version> <dep:type>war</dep:type> </dep:moduleId> <dep:dependencies/> </dep:environment> <web:context-root>/test</web:context-root> <web:container-config> <tomcat xmlns="http://geronimo.apache.org/xml/ns/j2ee/web/tomcat-2.0.1"> <host>testhost1.vhainc.local</host> </tomcat> </web:container-config> </web:web-app> |
|
First a quick check at it, I found that the name of HostGBean is
name=testhost2.vhainc.local, while in your deployment plan, it wrote
<host>testhost1.vhainc.local</host> , wonder is it a typo error ?
2012/1/21 Ray Sprinkle <[hidden email]> I am having difficulty getting Geronimo 2.2.1 virtual hosts to work. I Ivan |
|
> First a quick check at it, I found that the name of HostGBean is name=testhost2.vhainc.local, while in your deployment plan, it wrote <host>testhost1.vhainc.local</host> , wonder is it a typo error ?
Typo. Too many test configurations. I verified that all configurations point to testhost1, and it still doesn't work. Are there additional steps? I successfully deployed this to a virtual host on a standalone Tomcat 6 installation and I had to create a directory for the appBase. Is there somewhere in geronimo that I have to do something similar? |
|
Typo. Too many test configurations. I verified that all configurations
point to testhost1, and it still doesn't work. Are there additional steps? I successfully deployed this to a virtual host on a standalone Tomcat 6 installation and I had to create a directory for the appBase. Is there somewhere in geronimo that I have to do something similar? i didnt get virtual hosts to work in 2.2 branch too (tried git too) and then moved to jetty. |
|
> -----Original Message----- > From: Radim Kolar [mailto:[hidden email]] > Sent: Monday, January 23, 2012 3:01 PM > To: [hidden email] > Subject: Re: Virtual Host Configuration > > Typo. Too many test configurations. I verified that all configurations point to > testhost1, and it still doesn't work. Are there additional steps? I successfully > deployed this to a virtual host on a standalone Tomcat 6 installation and I had > to create a directory for the appBase. > Is there somewhere in geronimo that I have to do something similar? > > i didnt get virtual hosts to work in 2.2 branch too (tried git too) and then > moved to jetty. I started with 2.2, tried 2.1 and tried standalone Tomcat 6. The only one that worked was Tomcat. I've traced the initialization of the Tomcat container in Geronimo using Eclipse and it looks good to me. This should just work. |
|
> I started with 2.2, tried 2.1 and tried standalone Tomcat 6.
In 2.1 virtual hosts works, follow documentation on website. |
|
Hmm, I am wondering which doc did you refer to, and did not think the current geronimo-web.xml will work in Geronimo 2.1.*.
For the virtual host in Geronimo 2.2.*, the doc url is
https://cwiki.apache.org/GMOxDOC22/configuring-virtual-host-in-tomcat.html. If you really would like to use container-config to configure the virtual host, the namespace should be corrected,
---> <web:container-config> <tomcat xmlns="http://geronimo.apache.org/xml/ns/j2ee/web/tomcat-2.0.1"> <--- <tomcat xmlns="http://geronimo.apache.org/xml/ns/web/tomcat/config-1.0"> <host>testhost1.vhainc.local</host> </tomcat> </web:container-config> <--- 2012/1/24 Radim Kolar <[hidden email]>
Ivan |
|
Hmm, I am wondering which doc did you refer to, and did not think the current geronimo-web.xml will work in Geronimo 2.1.*.
For the virtual host in Geronimo 2.2.*, the doc url is https://cwiki.apache.org/GMOxDOC22/configuring-virtual-host-in-tomcat.html. If you really would like to use container-config to configure the virtual host, the namespace should be corrected, ---> <web:container-config> <tomcat xmlns="http://geronimo.apache.org/xml/ns/j2ee/web/tomcat-2.0.1"> <--- <tomcat xmlns="http://geronimo.apache.org/xml/ns/web/tomcat/config-1.0"> <host>testhost1.vhainc.local</host> </tomcat> </web:container-config> <--- Changing the xmlns to "http://geronimo.apache.org/xml/ns/web/tomcat/config-1.0" fixed my problem. How can I help fix the documentation? With your help, I found the namespace correctly referenced in the documentation for "Creating deployment plans for Web applications" Link: https://cwiki.apache.org/GMOxDOC22/creating-deployment-plans-for-web-applications.html#CreatingdeploymentplansforWebapplications-Thecontainerconfigelement but in the reference for geronimo-web.xml (https://cwiki.apache.org/GMOxDOC22/geronimo-webxml.html), in the <container-config> section, it links to http://geronimo.apache.org/xml/ns/j2ee/web/tomcat-2.0.1, which is the incorrect value I was using. Shouldn't these two sections be in agreement? 2012/1/24 Radim Kolar <[hidden email]> > I started with 2.2, tried 2.1 and tried standalone Tomcat 6. In 2.1 virtual hosts works, follow documentation on website. Thank you for the great help. |
|
Maybe the doc did not express the idea clearly. Think that it means that the container-config element is configured in
http://geronimo.apache.org/xml/ns/j2ee/web/tomcat-2.0.1 . While the contents of that element should be follow the schema
http://geronimo.apache.org/xml/ns/web/tomcat/config-1.0.
For any doc issue, you could open a JIRA and add the issue description there.
2012/1/25 Ray Sprinkle <[hidden email]>
Ivan |
|
I could not make virtual hosts in any G 2.2 to work:
configuration is following: (example configuration from wiki does not work also, it fails with same error) --- config.xml --- <module name="org.apache.geronimo.configs/tomcat6/2.2.2-SNAPSHOT/car"> <gbean gbeanInfo="org.apache.geronimo.tomcat.HostGBean" name="org.apache.geronimo.configs/tomcat6/2.2.2-SNAPSHOT/car?ServiceModule=org.apache.geronimo.configs/tomcat6/2.2.2-SNAPSHOT/car,j2eeType=Host,name=TomcatVirtualHost_1"> <attribute name="className">org.apache.catalina.core.StandardHost</attribute> <attribute name="initParams">name=whois.hebeidomains.com appBase= workDir=work</attribute> <reference name="Engine"> <pattern> <name>TomcatEngine</name> </pattern> </reference> </gbean> </module> ---- geronimo-web.xml ---- (valid xml) <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1 http://schema.filez.com/geronimo22/geronimo-web-2.0.1.xsd"> <environment xmlns="http://geronimo.apache.org/xml/ns/deployment-1.2" xsi:schemaLocation="http://geronimo.apache.org/xml/ns/deployment-1.2 http://schema.filez.com/geronimo22/geronimo-module-1.2.xsd"> <moduleId> <groupId>hebeidomains</groupId> <artifactId>whois-web</artifactId> <version>1.0.1</version> <type>war</type> </moduleId> <non-overridable-classes> <filter>net.sf.cglib</filter> <filter>javax.transaction</filter> <filter>javax.xml.soap</filter> <filter>org.apache.axiom</filter> </non-overridable-classes> <inverse-classloading/> </environment> <context-root></context-root> <container-config> <tomcat xmlns="http://geronimo.apache.org/xml/ns/web/tomcat/config-1.0" xsi:schemaLocation="http://geronimo.apache.org/xml/ns/web/tomcat/config-1.0 http://schema.filez.com/geronimo22/geronimo-tomcat-config-1.0.xsd"> <host>whois.hebeidomains.com</host> </tomcat> </container-config> </web-app> -- and it fails --
|
|
First, the Geronimo used is 2.2.2-SNAPSHOT ? The version number in the config.xml should be consistent with other versions.
There should be more error message in the log file, could you paste it ?
2012/2/2 Radim Kolar <[hidden email]>
Ivan |
|
Dne 2.2.2012 1:44, Ivan napsal(a):
First, the Geronimo used is 2.2.2-SNAPSHOT ?yes. tried 2.2.1 too. No difference. The version number in the config.xml should be consistent with other versions.with what other versions? "http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1" is XML namespace here is log message from geronimo.log 2012-02-01 20:30:24,884 INFO [DeploymentContext] The Strict Manifest Classpath processing mode is in effect. This option can be altered by specifying -DXorg.apache.geronimo.deployment.LenientMFCP=true|false Specify ="true" for more lenient processing such as ignoring missing jars and references that are not spec compliant. 2012-02-01 20:31:28,150 WARN [TomcatWebAppContext] TomcatWebAppContext failed 2012-02-01 20:31:28,150 ERROR [GBeanInstanceState] Error while starting; GBean is now in the FAILED state: abstractName="hebeidomains/whois-web/1.0.1/war?J2EEApplication=null,j2eeType=WebModule,name=hebeidomains/whois-web/1.0.1/war" java.lang.IllegalStateException: ContainerBase.addChild: start: LifecycleException: java.io.IOException: Context did not start for an unknown reason at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:803) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601) at org.apache.geronimo.tomcat.TomcatContainer.addContext(TomcatContainer.java:295) at org.apache.geronimo.tomcat.TomcatWebAppContext.doStart(TomcatWebAppContext.java:525) at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:953) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:269) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:103) at org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:525) at org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:110) at org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:145) at org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:119) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:175) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:44) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:253) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:295) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:103) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:125) at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:539) at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:377) at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:465) at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:190) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:546) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:527) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34) at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:816) at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35) at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96) at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$$7eeef827.startConfiguration(<generated>) at org.apache.geronimo.deployment.plugin.local.StartCommand.run(StartCommand.java:67) at java.lang.Thread.run(Thread.java:662) 2012-02-01 20:31:28,259 ERROR [DeploymentPortlet] The application was not successfully started. start of hebeidomains/whois-web/1.0.1/war failed org.apache.geronimo.kernel.config.LifecycleException: start of hebeidomains/whois-web/1.0.1/war failed at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:562) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:527) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34) at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:816) at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35) at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96) at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$$7eeef827.startConfiguration(<generated>) at org.apache.geronimo.deployment.plugin.local.StartCommand.run(StartCommand.java:67) at java.lang.Thread.run(Thread.java:662) Caused by: org.apache.geronimo.kernel.config.InvalidConfigException: Unknown start exception at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:531) at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:190) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:546) ... 14 more Caused by: org.apache.geronimo.gbean.InvalidConfigurationException: Configuration hebeidomains/whois-web/1.0.1/war failed to start due to the following reasons: The service J2EEApplication=null,j2eeType=WebModule,name=hebeidomains/whois-web/1.0.1/war did not start because ContainerBase.addChild: start: LifecycleException: java.io.IOException: Context did not start for an unknown reason at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:494) ... 16 more i just noticed that there is also stacktrace.log file, most likely generated by spring framework. it contains following error about MessageContext class not found. This class is most likely from AXIS. I have configured inverse classloading, but axis should be in classpath anyway because its provided by G 2012-02-01 20:31:27,994 [Thread-25] ERROR StackTrace - Sanitizing stacktrace: java.lang.ClassNotFoundException: MessageContext in classloader hebeidomains/whois-web/1.0.1/war at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:407) at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:257) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) at java.lang.Class.getDeclaredMethods(Class.java:1791) at org.springframework.core.type.StandardAnnotationMetadata.hasAnnotatedMethods(StandardAnnotationMetadata.java:136) at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.checkConfigurationClassCandidate(ConfigurationClassBeanDefinitionReader.java:318) at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:172) at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:142) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:599) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:407) at org.codehaus.groovy.grails.commons.spring.DefaultRuntimeSpringConfiguration.getApplicationContext(DefaultRuntimeSpringConfiguration.java:154) at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:164) at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:124) at org.codehaus.groovy.grails.web.context.GrailsConfigUtils.configureWebApplicationContext(GrailsConfigUtils.java:120) at org.codehaus.groovy.grails.web.context.GrailsContextLoader.createWebApplicationContext(GrailsContextLoader.java:73) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4201) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4694) at org.apache.geronimo.tomcat.GeronimoStandardContext.access$201(GeronimoStandardContext.java:64) at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:412) at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47) at org.apache.geronimo.tomcat.GeronimoStandardContext.start(GeronimoStandardContext.java:264) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601) at org.apache.geronimo.tomcat.TomcatContainer.addContext(TomcatContainer.java:295) at org.apache.geronimo.tomcat.TomcatWebAppContext.doStart(TomcatWebAppContext.java:525) at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:953) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:269) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:103) at org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:525) at org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:110) at org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:145) at org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:119) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:175) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:44) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:253) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:295) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:103) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:125) at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:539) at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:377) at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:465) at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:190) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:546) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:527) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34) at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:816) at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35) at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96) at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$$7eeef827.startConfiguration(<generated>) at org.apache.geronimo.deployment.plugin.local.StartCommand.run(StartCommand.java:67) at java.lang.Thread.run(Thread.java:662) 2012-02-01 20:31:28,025 [Thread-25] ERROR StackTrace - Sanitizing stacktrace: java.lang.NoClassDefFoundError: MessageContext at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) at java.lang.Class.getDeclaredMethods(Class.java:1791) at org.springframework.core.type.StandardAnnotationMetadata.hasAnnotatedMethods(StandardAnnotationMetadata.java:136) at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.checkConfigurationClassCandidate(ConfigurationClassBeanDefinitionReader.java:318) at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:172) at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:142) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:599) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:407) at org.codehaus.groovy.grails.commons.spring.DefaultRuntimeSpringConfiguration.getApplicationContext(DefaultRuntimeSpringConfiguration.java:154) at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:164) at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:124) at org.codehaus.groovy.grails.web.context.GrailsConfigUtils.configureWebApplicationContext(GrailsConfigUtils.java:120) at org.codehaus.groovy.grails.web.context.GrailsContextLoader.createWebApplicationContext(GrailsContextLoader.java:73) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4201) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4694) at org.apache.geronimo.tomcat.GeronimoStandardContext.access$201(GeronimoStandardContext.java:64) at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:412) at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47) at org.apache.geronimo.tomcat.GeronimoStandardContext.start(GeronimoStandardContext.java:264) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601) at org.apache.geronimo.tomcat.TomcatContainer.addContext(TomcatContainer.java:295) at org.apache.geronimo.tomcat.TomcatWebAppContext.doStart(TomcatWebAppContext.java:525) at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:953) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:269) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:103) at org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:525) at org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:110) at org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:145) at org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:119) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:175) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:44) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:253) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:295) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:103) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:125) at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:539) at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:377) at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:465) at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:190) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:546) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:527) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34) at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:816) at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35) at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96) at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$$7eeef827.startConfiguration(<generated>) at org.apache.geronimo.deployment.plugin.local.StartCommand.run(StartCommand.java:67) at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.ClassNotFoundException: MessageContext in classloader hebeidomains/whois-web/1.0.1/war at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:407) at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:257) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) at java.lang.Class.getDeclaredMethods(Class.java:1791) at org.apache.geronimo.tomcat.GeronimoStandardContext.access$201(GeronimoStandardContext.java:64) at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:412) at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47) at org.apache.geronimo.tomcat.GeronimoStandardContext.start(GeronimoStandardContext.java:264) at org.apache.geronimo.tomcat.TomcatContainer.addContext(TomcatContainer.java:295) at org.apache.geronimo.tomcat.TomcatWebAppContext.doStart(TomcatWebAppContext.java:525) at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:953) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:269) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:103) at org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:525) at org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:110) at org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:145) at org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:119) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:175) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:44) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:253) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:295) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:103) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:125) at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:539) at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:377) at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:465) at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:190) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:546) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:527) ... 9 more |
|
I doubt that
MessageContext means the class in Axis or Axis2.
From the exception message "
java.lang.ClassNotFoundException: MessageContext in classloader hebeidomains/whois-web/1.0.1/war ", it seems that no package name there, and I have checked the codes in Geronimo there, the name printed is a full name, which including the package name.
With the exception stack, the CNF is thrown while invoking getDeclaredMethods, think add a debug point and find the target class should be helpful to find the root cause.
2012/2/2 Radim Kolar <[hidden email]>
Ivan |
|
Is possible to make stack traces like they are on Jboss 7.1? These
traces includes jar from which was class loaded, this is highly useful when hunting classloading problems. STACKTRACE at org.jboss.jca.core.connectionmanager.ccm.CachedConnectionManagerImpl.registerConnection(CachedConnectionManagerImpl.java:265) at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:495) at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:129) at org.apache.jsp.index_jsp._jspService(index_jsp.java:256) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) [jbossweb-7.0.13.Final.jar:] at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) [jbossweb-7.0.13.Final.jar:] Also if you look at http://www.slideshare.net/rayploski/jboss-application-server-7 slide 6: * Modular * Only API, no AS implementation exposure * True isolation this is what should be done in AS because its time consuming to hunt app jars vs application server jars classloading issues. At geronimo i was not able to run some application at all. |
|
2012/3/19 Radim Kolar <[hidden email]> Is possible to make stack traces like they are on Jboss 7.1? These traces includes jar from which was class loaded, this is highly useful when hunting classloading problems. Seems an interesting function, I am thinking that there maybe two ways to do this in Geronimo
a. With the StackTraceElement, it is possible to get the class name, then with the class name, it should be able to find the bundle name with package admin service, but need to consider more for the current classloading configuration.
b. Use the internal class,e.g. sun.reflect.Reflection.getCallerClass, seems that it is able to get the Class instance, then it is easy to find the classloader, then the bundle name.
Yes, you are right, current classloading model in Geronimo 3.0-beta is still following the multiparent strategy in the past Geronimo versions, and it does bring issues about class loading conflict. Although hidden-classes could somewhat solve the issue, it is not easy to find the correct configuration for the users. The possible solution has been discussed for many times in the past, need to have a minimal public class set. Actually, in those plugin builder, there has a default environment for this purpose, hope that Geronimo could do that in the future versions.
Ivan |
|
On Mar 19, 2012, at 7:25 AM, Ivan wrote:
OSGI logging service provides the bundle that the logging event came from. I haven't entirely figured out pax logging but I think that the bundle is already available as something you can include in the output. david jencks
|
| Powered by Nabble | Edit this page |
