Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] Problem with WAR folder after migrating to Eclipse Luna

I figured it out, I'll provide the details on the off chance that anyone else runs into this problem.

Basically org.eclipse.jetty.osgi.boot.utils.internal.DefaultFileLocatorHelper checks to see if the class name is "org.eclipse.osgi.baseadaptor.bundlefile.FileBundleEntry" which it is in Kepler, but in Luna it is "org.eclipse.osgi.storage.bundlefile.FileBundleEntry" so the returned File ends up being null. It was addressed in this bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=431892 which was not fixed until Jetty 9.2.0.

I could not upgrade my app to use Jetty 9.2.0 easily (long story), so I went with a different solution which was to provide my own helper class called org.eclipse.jetty.osgi.boot.utils.FileLocatorHelperImpl which is in a fragment whose host plug-in is org.eclipse.jetty.osgi.boot. The BundleFileLocatorHelperFactory finds my helper class because it looks for an alternative class with exactly that name before using the DefaultFileLocatorHelper. For the implementation of my class, I used  a slightly modified version of the updated DefaultFileLocatorHelper from Jetty 9.2.0, which already accounts for the *BundleEntry classes being moved.


Thanks and good luck!

On Mon, Dec 8, 2014 at 3:47 PM, Zachary DeLuca <zadeluca@xxxxxxxxx> wrote:
Hello all, not sure if this should be directed at jetty or eclipse but here goes:

I have an RCP app with a plugin that includes the BIRT OSGi runtime (version 4.3.2). The plugin includes this in the manifest:

Jetty-WarFolderPath: birt
Web-ContextPath: /birt

And the Product file for the app sets this as a VM arg:

-Djetty.home.bundle=org.eclipse.jetty.osgi.boot


When using Kepler this worked perfectly and Jetty deployed BIRT, but after migrating my app to Luna I get the following error(s):

...
2014-12-08 14:56:11.863:INFO:oejd.DeploymentManager:Deployable added: net.companyname.plugin.name-1.0.0.qualifier/birt
2014-12-08 14:56:11.926:WARN:oejd.DeploymentManager:Unable to reach node goal: started
java.lang.IllegalArgumentException: Unable to locate birt in unlocated bundle 'net.companyname.plugin.name'
        at org.eclipse.jetty.osgi.boot.AbstractWebAppProvider$OSGiApp.configureWebApp(AbstractWebAppProvider.java:232)
...


I can provide more stack trace if needed, but I'm currently typing it manually so I'll leave it at that for now.

I am using Jetty 8.1.14 that is included with Eclipse Luna. I had to add some of the required plugins that were not included such as jetty-osgi-boot and it's dependencies. Also, jetty-webapp and jetty-xml were included with Luna as version 8.1.3, I replaced them with 8.1.14. This is all exactly the same as the working configuration I have with Kepler.

Does anyone have any advice? Obviously my bundle is there and the birt directory is inside it because that worked in Kepler and I have not done anything except import my projects into Luna. I'm going to try to upgrade my BIRT OSGi runtime to 4.4.1 as well to see if that helps.


Thank you,

Zach


Back to the top