users@grizzly.java.net

Re: ARP in glassfish v3

From: Jeanfrancois Arcand <Jeanfrancois.Arcand_at_Sun.COM>
Date: Thu, 05 Mar 2009 11:47:02 -0500

Salut,

Igor Minar wrote:
> Hi there,
>
> Is it just me or this wasn't fixed properly? Shouldn't r1839 contain
> something like:
>
>
> Index:
> modules/http/src/main/java/com/sun/grizzly/arp/DefaultAsyncExecutor.java
> ===================================================================
> ---
> modules/http/src/main/java/com/sun/grizzly/arp/DefaultAsyncExecutor.java
> (revision 2587)
> +++
> modules/http/src/main/java/com/sun/grizzly/arp/DefaultAsyncExecutor.java
> (working copy)
> @@ -98,6 +98,7 @@
>
>
> private void init(){
> + loadFilters();
> if (sharedAsyncFilters != null){
> for (String filterName: sharedAsyncFilters){
>
> asyncFilters.add((AsyncFilter)ClassLoaderUtil.load(filterName));
>
>
>> Sorry event if the property worked, I think all the classloading
>> changes in v3 brokes Grizzly extension point :-(
>
> this might not be true

No you are right. applied!

A+

--Jeanfrancois

>
> cheers,
> Igor
>
>
> On Oct 28, 2008, at 1:31 PM, Jeanfrancois Arcand wrote:
>
>> Salut,
>>
>> Igor Minar wrote:
>>> no worries.
>>> I created the custom AsyncHandler, but now I seem to have issues with
>>> getting the classpath right for v3. There is always something! :)
>>> In GF2 it was enough to drop a jar into glassfish2/lib/. In GF3 I'm
>>> trying glassfish3/glassfish/domain/domain1/lib/applib or ext and I
>>> get [1] or [2] respectively.
>>> Do you have a recommendation?
>>
>> ouf....v3 classloader are quite complicated :-( Can you ask the
>> question on dev_at_glassfish? As a workaround, if you add your class
>> inside glassfish.home/modules/grizzly-module.jar, does it work? You
>> might have to rename your class from com.igorminar.grizzly to
>> com.sun.grizzly.
>>
>> Sorry event if the property worked, I think all the classloading
>> changes in v3 brokes Grizzly extension point :-(
>>
>> A+
>>
>> -- Jeanfrancois
>>
>>
>>
>>> thanks,
>>> Igor
>>> [1]
>>> java.lang.ClassNotFoundException:
>>> com.igorminar.grizzlysendfile.SendfileAsyncHandler
>>> at
>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:198)
>>> at
>>> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
>>> at
>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:109)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
>>> at java.lang.Class.forName0(Native Method)
>>> at java.lang.Class.forName(Class.java:164)
>>> at
>>> com.sun.grizzly.http.SelectorThreadConfig.loadClassAndInstanciate(SelectorThreadConfig.java:324)
>>> at
>>> com.sun.grizzly.http.SelectorThreadConfig.configureProperties(SelectorThreadConfig.java:217)
>>> at
>>> com.sun.grizzly.http.SelectorThreadConfig.configure(SelectorThreadConfig.java:318)
>>> at
>>> com.sun.grizzly.http.SelectorThread.initEndpoint(SelectorThread.java:1059)
>>>
>>> at
>>> com.sun.enterprise.v3.services.impl.GrizzlyServiceListener.start(GrizzlyServiceListener.java:74)
>>> at
>>> com.sun.enterprise.v3.services.impl.GrizzlyProxy$1.run(GrizzlyProxy.java:222)
>>> Caused by: java.lang.ClassNotFoundException:
>>> com.igorminar.grizzlysendfile.SendfileAsyncHandler
>>> at
>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:486)
>>> at
>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:185)
>>> ... 12 more
>>> [2]
>>> [#|2008-10-28T11:41:09.232-0700|SEVERE|GlassFish10.0|javax.enterprise.system.core|_ThreadID=15;_ThreadName=Thread-3;|com/sun/grizzly/arp/DefaultAsyncHandler:com.igorminar.grizzlysendfile.SendfileAsyncHandler
>>> java.lang.NoClassDefFoundError: com/sun/grizzly/arp/DefaultAsyncHandler
>>> at java.lang.ClassLoader.defineClass2(Native Method)
>>> at java.lang.ClassLoader.defineClass(ClassLoader.java:774)
>>> at
>>> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:160)
>>> at java.net.URLClassLoader.defineClass(URLClassLoader.java:254)
>>> at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>>> at java.security.AccessController.doPrivileged(Native Method)
>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>>> at
>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:436)
>>> at
>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:185)
>>> at
>>> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
>>> at
>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:109)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
>>> at java.lang.Class.forName0(Native Method)
>>> at java.lang.Class.forName(Class.java:164)
>>> at
>>> com.sun.grizzly.http.SelectorThreadConfig.loadClassAndInstanciate(SelectorThreadConfig.java:324)
>>> at
>>> com.sun.grizzly.http.SelectorThreadConfig.configureProperties(SelectorThreadConfig.java:217)
>>> at
>>> com.sun.grizzly.http.SelectorThreadConfig.configure(SelectorThreadConfig.java:318)
>>> at
>>> com.sun.grizzly.http.SelectorThread.initEndpoint(SelectorThread.java:1059)
>>>
>>> at
>>> com.sun.enterprise.v3.services.impl.GrizzlyServiceListener.start(GrizzlyServiceListener.java:74)
>>> at
>>> com.sun.enterprise.v3.services.impl.GrizzlyProxy$1.run(GrizzlyProxy.java:222)
>>> On Oct 28, 2008, at 10:26 AM, Jeanfrancois Arcand wrote:
>>>> Thanks and really sorry for the glitch. My fault.
>>>>
>>>> -- Jeanfrancois
>>>>
>>>> Igor Minar wrote:
>>>>> I submitted the bug
>>>>> https://grizzly.dev.java.net/issues/show_bug.cgi?id=289 and will
>>>>> try the workaround.
>>>>> Thanks,
>>>>> Igor
>>>>> On Oct 28, 2008, at 10:04 AM, Jeanfrancois Arcand wrote:
>>>>>> Salut,
>>>>>>
>>>>>> Igor Minar wrote:
>>>>>>> Hi there,
>>>>>>> I ported my ARP filter to glassfish v3, but I can't seem to
>>>>>>> configure glassfish v3 to use it.
>>>>>>> In v2 I used this config in domain.xml:
>>>>>>> <jvm-options>-Dcom.sun.enterprise.web.connector.grizzly.asyncHandlerClass=com.sun.enterprise.web.connector.grizzly.async.DefaultAsyncHandler</jvm-options>
>>>>>>> <jvm-options>-Dcom.sun.enterprise.web.connector.grizzly.asyncHandler.ports=8080</jvm-options>
>>>>>>> <jvm-options>-Dcom.sun.enterprise.web.connector.grizzly.asyncFilters=com.igorminar.grizzlysendfile.SendfileFilter</jvm-options>
>>>>>>> in v3 I changed it to:
>>>>>>> <jvm-options>-Dcom.sun.grizzly.asyncHandlerClass=com.sun.grizzly.arp.DefaultAsyncHandler</jvm-options>
>>>>>>> <jvm-options>-Dcom.sun.grizzly.asyncHandler.ports=8080</jvm-options>
>>>>>>> <jvm-options>-Dcom.sun.grizzly.asyncFilters=com.igorminar.grizzlysendfile.SendfileFilter</jvm-options>
>>>>>>> But when I try to send any request to port 8080 it just times out
>>>>>>> after 30 seconds. I debugged my filter briefly, but it doesn't
>>>>>>> even look like the doFilter method is being called.
>>>>>>> Any idea what's wrong?
>>>>>>
>>>>>> Hum....looking at the code, the -Dcom.sun.grizzly.asyncFilters is
>>>>>> no longer working, hence it means the AsyncHandler cannot load
>>>>>> your AsyncFilter. Can you file a bug and I will fix it. The fix is
>>>>>> very simple, but for a reason I can't explain, the property
>>>>>> support as been removed (most probably my fault).
>>>>>>
>>>>>> A workaround for you is to extend the DefaultAsyncHandler and
>>>>>> invoke addAsyncFilter(new
>>>>>> com.igorminar.grizzlysendfile.SendfileFilter); inside the default
>>>>>> constructor. Not an ideal solution, but will works with the
>>>>>> current v3 Prelude.
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> -- Jeanfrancois
>>>>>>
>>>>>>
>>>>>>
>>>>>>> thanks,
>>>>>>> Igor
>>>>>>> ---------------------------------------------------------------------
>>>>>>>
>>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>>>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>