hmm, this rather strange and right now I don't have much of an idea.
Do you use std. gwt or vaadin? For vaadin I created a new Pax project to
simplify the usage,
though this is still a 0.1.0 :)

regards, Achim

2012/6/20 Gerard Maas <[email protected]>

> Hi!,
>
> Further to my previous messages, I continue with the effort of migrating
> our app to an uniform OSGi/DS-centric system.   The last 'bastion' is our
> GWT web interface which  -being a GWT app- has a WAR-centric format.
> I successfully refactored all servlets out from the war and converted into
> declarative OSGi services (<provide interface="javax.servlet.Servlet"/>).
> That way I got rid of all the messy ServiceTracker code.
> To further replicated the other WAR functionality to register a filter,
> serve static content and welcome page using the info on [1]  (thanks to
> Achim for that link).
>
> Now, I'm having issues with PAX-WEB and the way GWT tries to load its
> resources:
>
> While loading the serialization descriptors, GWT loads a local resource
> using the HTTP context.
> In my case it tries to resolve resources like
> this: /ctx/ctx/62394587E47773FB1594FF.gwt.rpc
> This resource is created by the GWT compiler and placed under :
> <bundle>/war/ctx/ctx/resource...
>
> Before, using the standard wab mapping (Webapp-Context: /ctx, Webapp-Root:
> /war) gwt would find its resources correctly.
> Now that I'm using the programmatic resource mapping:
> DefaultResourceMapping resourceMapping = new DefaultResourceMapping();
> resourceMapping.setAlias( "/ctx" );
> resourceMapping.setPath( "/war" );
>
> GWT fails to load the resouce and produces the following error:
> 2012-06-20 12:46:36.283:INFO:/:AbcProxy: ERROR: The serialization policy
> file '/ctx/ctx/600000000000000773FB1594FF.gwt.rpc' was not found; did you
> forget to include it in this deployment?
> 2012-06-20 12:46:36.283:INFO:/:AbcProxy: WARNING: Failed to get the
> SerializationPolicy '600000000000000773FB1594FF' for module '
> https://localhost:8443/ctx/ctx/'; a legacy, 1.3.3 compatible,
> serialization policy will be used.  You may experience
> SerializationExceptions as a result.
>
> [N.B. The last sentence should read "you will experience a hell of
> serialization issues as a result"]
>
> I've tracked the issue to the HttpServiceContext loading the resource and
> intrepreting the path as a file and not as a relative url:
>
> getting resource: [/mx/mx/6ECAD5B3A6F908CE17E47773FB1594FF.gwt.rpc]
> HttpServiceContext | not a URL or invalid URL:
> [/ctx/ctx/600000000000000773FB1594FF.gwt.rpc], treating as a file path
> DefaultHttpContext | Searching bundle [bundle] for resource
> [/ctx/ctx/600000000000000773FB1594FF.gwt.rpc]
>
> This obviously fails, as this resource is located under /war/ctx/ctx/ in
> bundle file system.
> This seems to relate to bug PAXWEB-314 [2]   which implementation is to
> turn the relative path into a file path:
>
>
>  // IMPROVEMENT start PAXWEB-314
>
> 257 
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#257>
>
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#>
>
>             try {
>
> 258 
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#258>
>
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#>
>
>                 resource = new URL 
> <http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/net/URL.java#URL>(path);
>
>  259 
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#259>
>
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#>
>
>                 LOG 
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java#HttpServiceContext.0LOG>.debug
>  
> <http://grepcode.com/file/repo1.maven.org/maven2/org.slf4j/slf4j-api/1.6.1/org/slf4j/Logger.java#Logger.debug%28java.lang.String%29>(
>  "resource: [" + path + "] is already a URL, returning" );
>
>  260 
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#260>
>
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#>
>
>                 return resource;
>
> 261 
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#261>
>
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#>
>
>             }
>
> 262 
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#262>
>
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#>
>
>                 catch (MalformedURLException 
> <http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/net/MalformedURLException.java#MalformedURLException>
>  e) {
>
>  263 
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#263>
>
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#>
>
>                       // do nothing, simply log
>
> 264 
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#264>
>
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#>
>
>                     LOG 
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java#HttpServiceContext.0LOG>.debug
>  
> <http://grepcode.com/file/repo1.maven.org/maven2/org.slf4j/slf4j-api/1.6.1/org/slf4j/Logger.java#Logger.debug%28java.lang.String%29>(
>  "not a URL or invalid URL: [" + path + "], treating as a file path" );
>
>  265 
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#265>
>
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#>
>
>             }
>
> 266 
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#266>
>
> <http://grepcode.com/file/repo1.maven.org/maven2/org.ops4j.pax.web/pax-web-jetty/1.1.2/org/ops4j/pax/web/service/jetty/internal/HttpServiceContext.java?av=h#>
>
>             // IMPROVEMENT end PAXWEB-314
>
>
> Is there a way to work around this issue?  Is somebody using GWT and
> PAX-WEB using OSGi services instead of a WAB?
> One possible way is to copy the /war/ctx produced by the GWT compiler back
> to /ctx, but I'd like to find a decent solution before going into the hack
> direction.
>
> Any pointers?
>
> -kr, Gerard.
>
> [1] -
> https://github.com/ops4j/org.ops4j.pax.web/blob/master/samples/whiteboard/src/main/java/org/ops4j/pax/web/extender/samples/whiteboard/internal/Activator.java
> [2] - http://team.ops4j.org/browse/PAXWEB-314
>
>
>
> _______________________________________________
> general mailing list
> [email protected]
> http://lists.ops4j.org/mailman/listinfo/general
>
>


-- 

Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer &
Project Lead
OPS4J Pax for Vaadin <http://team.ops4j.org/wiki/display/PAXVAADIN/Home>
Commiter & Project Lead
blog <http://notizblog.nierbeck.de/>
_______________________________________________
general mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/general

Reply via email to