2

Spring コンテナーをカスタム AutoLogin フィルターと統合しようとしていますが、2 日間使用しましたが、まだ機能していません...現時点では本当に混乱しています...

私のカスタム 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 クラスローダーを認識できないようです...そのため、クラスパスにクラスが見つかりません。

しかし、大きな問題は、サーバーの起動時に CastingException が発生するため、Hibernate-core jar をサーバーのクラスパスに追加できなかったことです。

私が行った別のテストは、Hibernate jar をフックの WEB-INF/lib フォルダーに追加することでしたが、Jar がフック クラスローダーに読み込まれていないようです...どちらも機能しません。

お願いします、何か助けていただければ幸いです...構成の問題であることを願っています...移動するジャーをプレイしてきましたが、もっと簡単になるはずですよね?

事前にどうもありがとうございました!

イヴァン

4

1 に答える 1

3

私はついにSpring統合を解決しました...同じ問題を抱えている人のために、私がやったことは次のとおりです。

  1. ファイル「liferay-plugin-package.properties」のプロパティ「portal-dependency-jars」を、Liferay の必要なすべてのライブラリで更新します。

    portal-dependency-jars=\ commons-logging.jar,\ hibernate3.jar,\ log4j-extras.jar,\ log4j.jar,\ spring-aop.jar,\ spring-asm.jar,\ spring-aspects.jar ,\ spring-beans.jar,\ spring-context-support.jar,\ spring-context.jar,\ spring-core.jar,\ spring-expression.jar,\ spring-jdbc.jar,\ spring-jms. jar,\ spring-orm.jar,\ spring-oxm.jar,\ spring-transaction.jar,\ spring-web-portlet.jar,\ spring-web-servlet.jar,\ spring-web-struts.jar, \spring-web.jar、\aopalliance.jar、\dom4j.jar、\slf4j-api.jar、\commons-beanutils.jar、\commons-collections.jar、\commons-lang.jar、\concurrent.jar、 \ javassist.jar

  2. Spring リスナーなしで web.xml を残します。最終的に、リスナーから Spring コンテキストをロードできませんでした...

  3. ClassPathXmlApplicationContext クラスを使用して、Spring コンテナーをフックにロードします。

この構成を使用すると、Jar を tomcat/lib ディレクトリにコピーする必要がなくなります。

これが誰かに役立つことを願っています!

イヴァン・フォンタナルス

于 2012-10-29T10:12:23.137 に答える