2012-10-27 70 views
2

我試圖將Spring容器與我的自定義AutoLogin過濾器集成,但我花了兩天的時間,但它還沒有正常工作......我現在非常困惑。 ..Liferay - 自動登錄鉤子+彈簧集成

我的自定義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> 

,但我真的不知道,如果我需要兩個listerenrs或只是其中之一。

當鉤子初始化時,在類路徑中找不到Spring類,所以我將所需的庫添加到Tomcat/lib目錄中。 Liferay有它自己的classloder,它看起來鉤子無法看到Liferay Classloader ...所以在classpath中找不到任何類。

但是,最大的問題是我無法將Hibernate-core jar添加到服務器類路徑中,因爲它在服務器啓動時會導致CastingException。

我做過的另一個測試是將Hibernate jar添加到我的Hook的WEB-INF/lib文件夾中,但它就像沒有Jar加載到Hook類加載器中一樣......所以它也不工作。

請任何幫助,將不勝感激......我希望是一個配置問題......雖然我一直在玩動的罐子,它應該更容易,不是嗎?

非常感謝您提前!

伊萬

回答

3

我終於解決了我的Spring的集成...只是爲了人同樣的問題,這裏是我做了什麼:

  1. 更新屬性「門戶的依賴-jars」在文件 「liferay-plugin-package.properties」 與來自Liferay的所有需要​​的庫:

    門戶依賴性-罐子= \ 公地logging.jar,\ hibernate.jar文件,\ log4j的-extras.jar,\ log4j.jar,\ 彈簧aop.jar,\ 彈簧asm.jar,\ 彈簧aspects.jar中,\ 彈簧beans.jar,\ 彈簧上下文-support.jar,\ 彈簧context.jar,\ 彈簧core.jar添加,\ 彈簧expression.jar,\ 彈簧了jdbc.jar,\ 彈簧jms.jar,\ 彈簧ORM的.jar,\ 彈簧oxm.jar,\ 彈簧transaction.jar,\ 彈簧網絡portlet.jar,\ 彈簧網絡的servlet.jar,\ 彈簧網絡的struts.jar,\ spring-web.jar,\ aopalliance.jar,\ dom4j.jar,\ SLF4J-api.jar文件,\ 公地beanutils.jar,\ 公地collections.jar,\ 公地lang.jar,\ concurrent.jar,\ javassist。罐子

  2. 讓web.xml沒有任何Spring Listener。我終於無法從偵聽器加載Spring上下文...

  3. 使用ClassPathXmlApplicationContext類將Spring容器加載到鉤子中。

使用此配置,您不需要將任何jar複製到tomcat/lib目錄中。

我希望這可以幫助某人!

Ivan Fontanals