[arquillian-issues] [JBoss JIRA] (ARQ-658) Deployment of an EnterpriseArchive onto remote GlassFish fails, when the contextRoot recorded in GlassFish, does not start with a slash

Vineet Reynolds (Issue Comment Edited) (JIRA) jira-events at lists.jboss.org
Fri Nov 18 07:40:40 EST 2011


    [ https://issues.jboss.org/browse/ARQ-658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12643949#comment-12643949 ] 

Vineet Reynolds edited comment on ARQ-658 at 11/18/11 7:39 AM:
---------------------------------------------------------------

Arquillian fails to resolve the context root of the deployment, as it is not specified in the application.xml file. This is a valid scenario, as an application.xml file is not a prerequisite for a deployment.

Of importance here, is the format of the {{moduleInfo}} property of the REST resource for the {{list-sub-components}} Admin Command. The moduleInfo returned has the format - {{moduleArchiveURI:moduleType:contextRoot}}. The contextRoot may or may not start with a "/". Currently, the GlassFish extension expects a "/" (which may have been specified in the application.xml file), but as demonstrated by the testcase, this is not necessary and will be absent when the GlassFish container generates the context root itself.
                
      was (Author: vineet.reynolds):
    Arquillian fails to resolve the context root of the deployment, as it is not specified in the application.xml file. This is a valid scenario, as an application.xml file is not a prerequisite for a deployment.

Of importance here, is the format of the {{moduleInfo}} property of the REST resource for the {{list-sub-components}} Admin Command. The moduleInfo returned has the format : {{moduleArchiveURI:moduleType:contextRoot}}. The contextRoot may or may not start with a "/". Currently, the GlassFish extension expects a "/" (which may have been specified in the application.xml file), but as demonstrated by the testcase, this is not necessary and will be absent when the GlassFish container generates the context root itself.
                  
> Deployment of an EnterpriseArchive onto remote GlassFish fails, when the contextRoot recorded in GlassFish, does not start with a slash
> ---------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ARQ-658
>                 URL: https://issues.jboss.org/browse/ARQ-658
>             Project: Arquillian
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: GlassFish Containers
>    Affects Versions: glassfish_1.0.0.CR2
>         Environment: Windows 64bit, Netbeans 7.07, Glassfish 3.1.1, Maven 3.03, testng 6.3, arquillian resolver 1.1.0-alpha-1
>            Reporter: Hanspeter Gisler
>            Assignee: Vineet Reynolds
>              Labels: EnterpriseArchive, ear, shrinkwrap
>
> if shrinkwrapping in the following way:
> {code} 
> @RunWith(Arquillian.class)
> public class ClientTest {
>     ... 
>     @Deployment
>     public static EnterpriseArchive createTestArchive() {
>     JavaArchive jar = ShrinkWrap.create(JavaArchive.class, "test.jar").addClasses(Client.class)
>         .addAsManifestResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml"));
>     EnterpriseArchive ear = ShrinkWrap.create(EnterpriseArchive.class, "test.ear")
>         .addAsModule(jar);
>     return ear;
> }
> ...
> {code}
>  
>  
> I get the following exception:
> {code}
> -------------------------------------------------------------------------------
> Test set: TestSuite
> -------------------------------------------------------------------------------
> Tests run: 5, Failures: 1, Errors: 0, Skipped: 4, Time elapsed: 2.316 sec <<< FAILURE!
> arquillianBeforeClass(org.demo.ClientTest)  Time elapsed: 0 sec  <<< FAILURE!
> java.lang.StringIndexOutOfBoundsException: String index out of range: -1
>           at java.lang.String.substring(String.java:1952)
>           at java.lang.String.substring(String.java:1925)
>           at org.jboss.arquillian.container.glassfish.remote_3_1.clientutils.GlassFishClientService.resolveWebModuleContextRoot(GlassFishClientService.java:307)
>           at org.jboss.arquillian.container.glassfish.remote_3_1.clientutils.GlassFishClientService.doDeploy(GlassFishClientService.java:229)
>           at org.jboss.arquillian.container.glassfish.remote_3_1.GlassFishRestDeployableContainer.deploy(GlassFishRestDeployableContainer.java:123)
>           at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java:148)
>           at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java:115)
>           at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.executeOperation(ContainerDeployController.java:258)
>           at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.deploy(ContainerDeployController.java:114)
>           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>           at java.lang.reflect.Method.invoke(Method.java:601)
>           at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
>           at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
>           at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
>           at org.jboss.arquillian.container.impl.client.container.DeploymentExceptionHandler.verifyExpectedExceptionDuringDeploy(DeploymentExceptionHandler.java:50)
>           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>           at java.lang.reflect.Method.invoke(Method.java:601)
>           at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
>           at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
>           at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createDeploymentContext(ContainerDeploymentContextHandler.java:78)
>           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>           at java.lang.reflect.Method.invoke(Method.java:601)
>           at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
>           at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
>           at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:57)
>           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>           at java.lang.reflect.Method.invoke(Method.java:601)
>           at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
>           at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
>           at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134)
>           at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
>           at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
>           at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$1.perform(ContainerDeployController.java:86)
>           at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$1.perform(ContainerDeployController.java:79)
>           at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.forEachDeployment(ContainerDeployController.java:250)
>           at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.forEachManagedDeployment(ContainerDeployController.java:226)
>           at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.deployManaged(ContainerDeployController.java:78)
>           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>           at java.lang.reflect.Method.invoke(Method.java:601)
>           at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
>           at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
>           at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
>           at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134)
>           at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
>           at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
>           at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:97)
>           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>           at java.lang.reflect.Method.invoke(Method.java:601)
>           at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
>           at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
>           at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
>           at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:68)
>           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>           at java.lang.reflect.Method.invoke(Method.java:601)
>           at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
>           at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
>           at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:54)
>           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>           at java.lang.reflect.Method.invoke(Method.java:601)
>           at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
>           at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
>           at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134)
>           at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
>           at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeClass(EventTestRunnerAdaptor.java:80)
>           at org.jboss.arquillian.testng.Arquillian.arquillianBeforeClass(Arquillian.java:76)
>           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>           at java.lang.reflect.Method.invoke(Method.java:601)
>           at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:76)
>           at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:525)
>           at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:202)
>           at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:130)
>           at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:173)
>           at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:105)
>           at org.testng.TestRunner.runWorkers(TestRunner.java:1147)
>           at org.testng.TestRunner.privateRun(TestRunner.java:749)
>           at org.testng.TestRunner.run(TestRunner.java:600)
>           at org.testng.SuiteRunner.runTest(SuiteRunner.java:317)
>           at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:312)
>           at org.testng.SuiteRunner.privateRun(SuiteRunner.java:274)
>           at org.testng.SuiteRunner.run(SuiteRunner.java:223)
>           at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
>           at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
>           at org.testng.TestNG.runSuitesSequentially(TestNG.java:1039)
>           at org.testng.TestNG.runSuitesLocally(TestNG.java:964)
>           at org.testng.TestNG.run(TestNG.java:900)
>           at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:60)
>           at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:106)
>           at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:111)
>           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>           at java.lang.reflect.Method.invoke(Method.java:601)
>           at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103)
>           at $Proxy0.invoke(Unknown Source)
>           at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150)
>           at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91)
>           at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) 
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the arquillian-issues mailing list