[
https://issues.apache.org/jira/browse/GERONIMO-4141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12646208#action_12646208
]
Ivan commented on GERONIMO-4141:
--------------------------------
I guess we should support this feature, to export the war, then deploy it as a
plug-in. So that the users could deliver their products more conveniently.
I do some troubleshooting on this issue, the export war file contains all the
configuration information that needed as a Geronimo plugin. The reason that the
deployment failed is that while we install the war file to the repository, the
ArtifactTypeHandler we use is the default one, not the expected
UnpackArtifactTypeHandler, for the artifact type is war, not the car.
I can think there maybe two solutions for it :
a. While installing the plugin, since we are sure that the currently file is
sufficient to be a plugin (or an exception will throw in the previous codes.),
we could just build a fake Artifact (set its type with car), then
Maven2Repository will handle it like a car file. I have tried it, it works.
b. While we export the war file, we changed the type to car, so what the user
gets is a truely plugin. So later, it should be imported successfully with the
install-plugin command.
>From my side, the "a" is simple, but it seems to be a little strange. the "b"
>is more reasonable, but I am not sure whether it is feasiable.
Please give some comments, or there is a better way to do it .
Thanks !
> 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: 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.