我正在尝试将 Spring 容器与我的自定义 AutoLogin 过滤器集成,但我已经花了两天时间,它还没有工作......我现在真的很困惑......
我的自定义 AutoLogin 需要对与 Liferay 不同的外部数据库进行身份验证,所以我假装使用我的服务和在 Spring 中配置的 Daos 来存档它。
我的 web.xml 有这样的配置:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/applicationContext.xml</param-value>
</context-param>
<context-param>
<param-name>portalContextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>com.liferay.portal.kernel.spring.context.PortletContextLoaderListener</listener-class>
但我真的不确定我需要两个听众还是只需要其中一个。
当钩子初始化时,在类路径中找不到 Spring 类,因此我将所需的库添加到 Tomcat/lib 目录。Liferay 有自己的类加载器,似乎它无法看到 Liferay 类加载器的钩子......所以在类路径中找不到类。
但最大的问题是我无法将 Hibernate-core jar 添加到服务器类路径,因为它在服务器启动时会导致 CastingException。
我做过的另一个测试是将 Hibernate jar 添加到我的 Hook 的 WEB-INF/lib 文件夹中,但这就像 Hook 类加载器中没有加载任何 Jar 一样......所以它也不起作用。
请,任何帮助将不胜感激...我希望是配置问题...虽然我一直在玩移动罐子,它应该更容易,不是吗?
非常感谢您!
伊万