[ 
https://issues.apache.org/jira/browse/GERONIMO-4141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12647473#action_12647473
 ] 

David Jencks commented on GERONIMO-4141:
----------------------------------------

My opinion is that we should consistently name all deployed apps with type 
"car" rather than "ear", "rar", etc etc.  They aren't really the original type 
any more -- they have probably been partly unpacked or repackaged and certainly 
have extra geronimo specific info in them.  I argued for this point of view 
long before plugins arrived but lost the argument.

Two more alternatives:

1. modify the code that decides if an artifact needs to be unpacked, that 
currently just looks at the type, to look inside the artifact for geronimo 
metadata.  IIRC this info is not available at the moment so this would require 
significant changes to the config store artifact installation code.

2. Modify our classloader so it can work with packed car files.  Presumably it 
would unpack the jars inside on demand.  This is probably the conceptually 
cleanest solution but writing such a classloader might be rather hard.

At the moment I think we should make the console try really hard to deploy 
everything into a car file, e.g. by warning the user that the result wont be a 
workable plugin if they choose something else.

> The war exported as a geronimo plugin in admin console cannot be installed 
> with install-plugin command of deploy.bat|.sh
> ------------------------------------------------------------------------------------------------------------------------
>
>                 Key: GERONIMO-4141
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-4141
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>    Affects Versions: 2.1, 2.1.1, 2.1.2, 2.1.3
>         Environment: SLES 10 SP2, JDK 1.5.0
>            Reporter: Forrest Xia
>            Assignee: Lin Sun
>            Priority: Minor
>             Fix For: 2.1.4
>
>         Attachments: Geronimo-4141.patch, jsp-examples-2.1.0.0.war, 
> jsp-examples-war-2.1-SNAPSHOT.war
>
>
> Steps:
> 1. install a war
> 2. export the war as a G plugin with admin console's export plugin function
> 3. undeploy it thru console, and use deployer install-plugin command to 
> install the exported war
> Results: The installation failed with message like this "installation FAILED: 
> start of org.apache.geronimo.samples/cviewer/2.1.0.0/war failed".
> The server log includes these exceptions:
> "17:12:38,335 ERROR [GBeanInstance] Problem in doFail of 
> samples/cviewer/2.1.0.0/war?J2EEApplication=null,j2eeType=WebModule,name=samples/cviewer/2.1.0.0/war
> java.lang.NullPointerException
>         at 
> org.apache.geronimo.tomcat.TomcatContainer.removeContext(TomcatContainer.java:380)
>         at 
> org.apache.geronimo.tomcat.TomcatWebAppContext.doFail(TomcatWebAppContext.java:540)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:1028)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:268)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:541)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:111)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:146)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:120)
>         at 
> org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:176)
>         at 
> org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:44)
>         at 
> org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:254)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:294)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:124)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:555)
>         at 
> org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379)
>         at 
> org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:456)
>         at 
> org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:187)
>         at 
> org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:562)
>         at 
> org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:543)
>         at 
> org.apache.geronimo.system.plugin.PluginInstallerGBean.install(PluginInstallerGBean.java:684)
>         at 
> org.apache.geronimo.system.plugin.PluginInstallerGBean.install(PluginInstallerGBean.java:877)
>         at 
> org.apache.geronimo.system.plugin.PluginInstallerGBean$4.run(PluginInstallerGBean.java:787)
>         at org.apache.geronimo.pool.ThreadPool$1.run(ThreadPool.java:214)
>         at 
> org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run(ThreadPool.java:344)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>         at java.lang.Thread.run(Thread.java:810)
> 17:12:38,338 ERROR [GBeanInstanceState] Error while starting; GBean is now in 
> the FAILED state: 
> abstractName="samples/cviewer/2.1.0.0/war?J2EEApplication=null,j2eeType=WebModule,name=samples/cviewer/2.1.0.0/war"
> java.lang.NullPointerException
>         at java.io.File.<init>(File.java:220)
>         at 
> org.apache.catalina.core.StandardContext.getBasePath(StandardContext.java:4809)
>         at 
> org.apache.catalina.core.StandardContext.getServletContext(StandardContext.java:1653)
>         at 
> org.apache.geronimo.tomcat.GeronimoStandardContext.setContextProperties(GeronimoStandardContext.java:104)
>         at 
> org.apache.geronimo.tomcat.TomcatContainer.addContext(TomcatContainer.java:283)
>         at 
> org.apache.geronimo.tomcat.TomcatWebAppContext.doStart(TomcatWebAppContext.java:512)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:998)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:268)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:541)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:111)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:146)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:120)
>         at 
> org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:176)
>         at 
> org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:44)
>         at 
> org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:254)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:294)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:124)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:555)
>         at 
> org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379)
>         at 
> org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:456)
>         at 
> org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:187)
>         at 
> org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:562)
>         at 
> org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:543)
>         at 
> org.apache.geronimo.system.plugin.PluginInstallerGBean.install(PluginInstallerGBean.java:684)
>         at 
> org.apache.geronimo.system.plugin.PluginInstallerGBean.install(PluginInstallerGBean.java:877)
>         at 
> org.apache.geronimo.system.plugin.PluginInstallerGBean$4.run(PluginInstallerGBean.java:787)
>         at org.apache.geronimo.pool.ThreadPool$1.run(ThreadPool.java:214)
>         at 
> org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run(ThreadPool.java:344)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>         at java.lang.Thread.run(Thread.java:810)
> 17:12:38,344 ERROR [PluginInstallerGBean] Unable to install plugin.
> org.apache.geronimo.kernel.config.LifecycleException: start of 
> samples/cviewer/2.1.0.0/war failed
>         at 
> org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:579)
>         at 
> org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:543)
>         at 
> org.apache.geronimo.system.plugin.PluginInstallerGBean.install(PluginInstallerGBean.java:684)
>         at 
> org.apache.geronimo.system.plugin.PluginInstallerGBean.install(PluginInstallerGBean.java:877)
>         at 
> org.apache.geronimo.system.plugin.PluginInstallerGBean$4.run(PluginInstallerGBean.java:787)
>         at org.apache.geronimo.pool.ThreadPool$1.run(ThreadPool.java:214)
>         at 
> org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run(ThreadPool.java:344)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>         at java.lang.Thread.run(Thread.java:810)
> Caused by:
> org.apache.geronimo.kernel.config.InvalidConfigException: Unknown start 
> exception
>         at 
> org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:522)
>         at 
> org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:187)
>         at 
> org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:562)
>         ... 9 more
> Caused by:
> org.apache.geronimo.gbean.InvalidConfigurationException: Configuration 
> samples/cviewer/2.1.0.0/war failed to start due to the following reasons:
>   The service 
> J2EEApplication=null,j2eeType=WebModule,name=samples/cviewer/2.1.0.0/war did 
> not start for an unknown reason
>         at 
> org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:485)
>         ... 11 more
> 17:12:38,352 INFO  [DirectoryMonitor] Hot deployer notified that an artifact 
> was removed: samples/cviewer/2.1.0.0/war
> "
> Question: if a war(or a ear) module is not intent to be exported as geronimo 
> plugin, does it need to appear in the export plugin list? This will make user 
> confused around what geronimo plugin really is.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to