dev@glassfish.java.net

Re: --contextroot

From: Vivek Pandey <Vivek.Pandey_at_Sun.COM>
Date: Thu, 05 Mar 2009 22:16:36 -0800

Kedar Mhaswade wrote:
>
>
> Vivek Pandey wrote:
>> there are couple of issues here:
>>
>> 1. 'asadmin deploy --contextroot foo runner' does not work. accessing
>> the app gives 404
>> 2. Directory deploy the same app with different contextroot does not
>> work.
>>
>> For 1, I noticed that jruby container was simply taking the
>> contextroot from the command parameters and using it. the contextroot
>> here is 'foo' not '/foo' so as it turns out there was no check for
>> such thing in jruby Deployer. So instead of '/foo' it was registering
>> 'foo' context with grizzly.
>>
>> This should be simple to fix there. However I am wondering this is
>> sort of common code. Should asadmin CLI not take care of such
>> corrections rather than container fixing such invalid option values?
>>
>> if(contextRoot.charAt(0) != '/')
>> contextRoot = "/" + contextRoot;
>
> I don't think checks like this should be enforced by asadmin per se.
> Instead "/foo" and "foo" should be treated the same way (just like
> "" and "/" should be; for apps deployed at root context) by the
> container.
>
Well yes this is the current behavior but IMO, keeping such logic at
one place is meaningful and avoids code duplication in every new
container that tries to work thru this option. At the prelude time, ""
means '/' was a revelation to me :-) There was no way to find it out
till someone told me about it. It is better to either describe such
behaviors thru some defined abstractions or should be handled at once place.

It is pretty simple fix in jruby container code, I would patch it there.

-vivek.
>
>
>>
>> For 2 I think uniqueness of deployed app is computed based on the app
>> name and not on the app name + the context. Well, I could be wrong
>> but this is something that is not in the jruby container's control.
>> Error is thrown at a lower level. See http://pastie.org/409066.
>>
>> -vivek.
>>
>>
>>
>>
>> Arun Gupta wrote:
>>> Thanks Vince for providing the context!
>>>
>>> Yes, this is a Rails app, should've mentioned.
>>>
>>> The blog pointer provided by Vince shows exactly how to create that
>>> app. Let me know if you need more information.
>>>
>>> -Arun
>>>
>>> vince kraemer wrote:
>>>> I think Arun forgot to mention that 'runner' is a Rails app that he
>>>> is trying to directory deploy. I think you tested something that is
>>>> different by two degrees of freedom... dir deploy vs. archived and
>>>> Rails vs Java EE.
>>>>
>>>> See:
>>>> http://blogs.sun.com/arungupta/entry/totd_71_jruby_and_glassfish
>>>> for a bit more context...
>>>>
>>>> vbk
>>>>
>>>> Hong Zhang wrote:
>>>>> Hi, Arun
>>>>> I tried to deploy a simple web application with --contextroot
>>>>> option and it worked as expected for me.
>>>>>
>>>>> hzhang_at_nmr:~/files/sun/glassfish/bin$ ./asadmin deploy
>>>>> --contextroot foo ~/deployment/apps/hello1.war
>>>>> Command deploy executed successfully.
>>>>>
>>>>> I was able to access the application under localhost:8080/foo
>>>>>
>>>>> hzhang_at_nmr:~/files/sun/glassfish/bin$ ./asadmin deploy
>>>>> --force=true --contextroot bar ~/deployment/apps/hello1.war
>>>>> Command deploy executed successfully.
>>>>>
>>>>> I was able to access the application under localhost:8080/bar.
>>>>>
>>>>> You can send me your application for me to try..
>>>>>
>>>>> - Hong
>>>>>
>>>>>
>>>>> Arun Gupta wrote:
>>>>>
>>>>>> Two questions on --contextroot ...
>>>>>>
>>>>>> 1). On a fresh b39, I tried:
>>>>>>
>>>>>> -- cut here --
>>>>>> >~/tools/glassfish/v3/b39/glassfishv3/bin/asadmin deploy
>>>>>> --contextroot runlog --force=true runner
>>>>>>
>>>>>> Command deploy executed successfully.
>>>>>> -- cut here --
>>>>>>
>>>>>> Here http://localhost:8080/runlog gives 404 and
>>>>>> http://localhost:8080/runner shows the expected page.
>>>>>>
>>>>>> Is --contextroot switch expected to work ?
>>>>>>
>>>>>> 2). On another fresh instance I tried:
>>>>>>
>>>>>> -- cut here --
>>>>>> >~/tools/glassfish/v3/b39/glassfishv3/bin/asadmin deploy runner
>>>>>> Command deploy executed successfully.
>>>>>>
>>>>>> >~/tools/glassfish/v3/b39/glassfishv3/bin/asadmin deploy
>>>>>> --contextroot runlog --force=true runner
>>>>>>
>>>>>> Command deploy executed successfully.
>>>>>> -- cut here --
>>>>>>
>>>>>> But accessing http://localhost:8080/runner and
>>>>>> http://localhost:8080/runlog both give 404.
>>>>>>
>>>>>> Why so ?
>>>>>>
>>>>>> -Arun
>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>>>>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>>>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>