Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] Issue loading classes from JARs used by Jetty.

Thank you Jan! You've helped me big time!

I've found the solution to my problem in the linked Wiki's 'Settings Server Classes' section (http://wiki.eclipse.org/Jetty/Reference/Jetty_Classloading#Setting_Server_Classes).

Basically I only had to add the following to the list of server classes: "-org.eclipse.jetty.deploy.". (Mind the '-' prefix, and the '.' suffix.).

If one would like to add only a single class (with it's fully qualified name), care must be taken to insert the "pattern" for it, before any enclosing package pattern. So for example, adding "-org.eclipse.server.handler.ContextHander" to the end of the server classes array would be overridden by the last entry in the array ("org.eclipse.jetty.").

I've queried the default server classes with WebAppContext.getServerClasses() and tweak the array returned by it, then called WebAppContext.setServerClasses(String[]) method with the tweaked array. I don't know what are the implications of removing (overriding) the default entries, or using WebAppContext.addServerClass(String). The latter would probably just append the pattern at hand to the end of the default server classes array, which isn't always appropriate. Maybe someone can clarify this.

Anyway, thanks again Jan and I hope somebody can benefit from my little "description".

Regards,
Kohányi Róbert

On Mon, Oct 17, 2011 at 7:30 AM, Jan Bartel <janb@xxxxxxxxxxx> wrote:
Róbert,

Have a read of this wiki page, as I think it will answer you questions:

http://wiki.eclipse.org/Jetty/Reference/Jetty_Classloading

regards
Jan

On 17 October 2011 02:01, Róbert Kohányi <kohanyi.robert@xxxxxxxxx> wrote:
I'm trying to create a servlet which tries to use classes included in Jetty's lib/ directory. Namely the class org.eclipse.jetty.deploy.DeploymentManager which is included in lib/jetty-deploy-8.0.3.v20111011.jar.

Let me try to illustrate the problem with an example. See the following servlet implementation here: http://pastebin.com/TSh98sYB

Instantiating the DeploymentManager in the constructor generates no errors, but doing the same in the doPut method always throws: java.lang.NoClassDefFoundError: org/eclipse/jetty/deploy/DeploymentManager.

I'v tried saving Thread.currentThread().getContextClassLoader() (in the constructor) in a static variable and load the DeploymentManager's class in doPut, however it still threw an exception (same as above).

I haven't got the faintest idea what could the problem be and that how can I solve this.

I'm using a Jetty 8.0.3.v20111011 without any modifications, downloaded from here: http://download.eclipse.org/jetty/stable-8/dist/jetty-distribution-8.0.3.v20111011.zip

If anyone has an idea please let me know about it! Thanks!

Regards,
Kohányi Róbert

_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/jetty-users



_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/jetty-users



Back to the top