Skip to main content

Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Equinox » Serving resources from different bundles with HttpContextId defined
Serving resources from different bundles with HttpContextId defined [message #1719061] Mon, 04 January 2016 19:30
Sean Willis is currently offline Sean WillisFriend
Messages: 1
Registered: January 2016
Junior Member
I have run into this problem when trying to upgrade Equinox from Eclipse version 4.2.2 to 4.5.1. Some context into the change that has caused a problem for me can be seen here: Basically when using the default HttpContext for servlets, session attributes cannot be shared between each servlet. To get around this I have defined a HttpContext that is common among all of the servlets. After this I have encountered the following problem (

I have run into this issue as well. My application used to share session attributes without specifying an httpcontextId. I have tried Martin's workaround by specifying an httpcontextId for each servlet, filter and resource that is contributed in each bundle's plugin.xml. The app has servlets and resources contributed in a variety of bundles. I will show an example of two bundles, A and B:

BUNDLE A plugin.xml-
httpcontextId="com.example.sharedContext "

A filter for "/" will write an authentication token to the session attributes the first time it is reached. Subsequent times it will check for this token and send user to the login page if it is not there.


The problem is when we are making a resource contribution from another bundle:

BUNDLE B plugin.xml-

Bundle B folders that exist and intend to be served:

When trying to access "/example.indexpage/html/header.htm", there is a 404 error. Is this resource contribution trying serving files from "Bundle A" that don't exist? My intention is to serve the files from bundle B, but this does not seem to happen. When I do not specify a httpcontextId for bundle B's resource contribution, the file is properly served, but then the authentication filter will not be able to see the token in the session attributes since it is now in a different context from the other servlets.

Looking at the documentation for the extension point "org.eclipse.equinox.http.registry.httpcontexts", a resource-mapping can be specified. The doc says that if no bundle name is provided then it will use the current bundle as the bundle to load resources from (eg. Bundle A would be serving resources from it's own non-existent "/res" folder when the intention is to serve resources from "/res" in Bundle B). Is there a workaround to restore this behavior? My app relies heavily on the mechanism that I have described.

Any help on this issue is appreciated.

[Updated on: Tue, 05 January 2016 21:58]

Report message to a moderator

Previous Topic:Runtime arguments to verify digitally signed bundles
Next Topic:Prevent installation of product 1 'on top of' product 2
Goto Forum:

Current Time: Sat Sep 24 22:54:05 GMT 2022

Powered by FUDForum. Page generated in 0.02413 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top