Jetty的自定义登录服务,类加载器问题

时间:2018-01-03 22:15:34

标签: java authentication jetty classloader

与提出的问题相关@ Jetty custom LoginService

所以,我经过多次尝试后想出来确实应该将自定义登录类放在{jetty.base} / lib / ext文件夹中,以便Jetty能够通过所使用的类加载器找到它。

但是,既然已经加载了类,我还有另一个问题......我得到了自定义登录服务类引用的业务逻辑类的ClassNotFoundException。显然,拥有自定义登录服务类的全部目的是让登录可以使用我的webapp代码中的一些业务逻辑......那么为什么使用的类加载器无法看到web-inf / lib (以及webapp的额外类路径库)?

我错过了什么,我该怎么办?

感谢, GBA。

2 个答案:

答案 0 :(得分:0)

通过此邮件列表 - http://jetty.4.x6.nabble.com/Jetty-custom-LoginService-question-td4966621.html,您的问题就是

  

为此创建一个新的jetty基目录。将您的webapp放入其中。   启用http,security,deploy和ext等模块   你可能需要(看看$ jetty.home / demo-base /来获取一些   想法)。将带有LoginService impl的jar放入您的jetty基地   lib / ext目录。然后,从你的线   WEB-INF / jetty-web.xml文件,用于设置登录服务并将其放入   到您的webapp的上下文xml文件中,所以首先读取它们   比配置你的时候使用jetty-web.xml的情况要好   web应用程序。

我假设您已将自定义LoginService放在${jetty.base}/lib/ext文件夹

之后,您还应该在webapp中创建一个创建context.xml,其中包含有关额外类路径库的信息,参考jetty-web.xml并按照此链接中的步骤进行操作 - http://www.eclipse.org/jetty/documentation/9.4.x/jetty-classloading.html#adding-extra-classpaths

启动你的服务器,这应该可行

答案 1 :(得分:0)

好吧,多亏了Jetty用户的邮件列表,我得到了答案......

你可以在这里阅读所有相关内容: https://dev.eclipse.org/mhonarc/lists/jetty-users/msg08262.html