0

struts2 の完全な休止状態プラグイン ( http://code.google.com/p/full-hibernate-plugin-for-struts2 ) を使用して、struts2 の例で休止状態を使用しようとしています。

すべての Jar を lib フォルダーに配置しました。

antlr-2.7.6.jar
commons-collections-3.1.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-lang-2.3.jar
commons-logging-1.0.4.jar
commons-logging-api-1.1.jar
dom4j-1.6.1.jar
freemarker-2.3.15.jar
hibernate3.jar
javassist-3.9.0.GA.jar
jta-1.1.jar
jtds-1.2.4.jar
log4j-1.2.15.jar
ognl-2.7.3.jar
slf4j-api-1.5.8.jar
slf4j-log4j12-1.5.8.jar
spring-beans-2.5.6.jar
spring-context-2.5.6.jar
spring-core-2.5.6.jar
spring-test-2.5.6.jar
spring-web-2.5.6.jar
struts2-core-2.1.8.jar
struts2-fullhibernatecore-plugin-1.5-GA.jar
struts2-spring-plugin-2.1.8.jar
xwork-core-2.1.6.jar

そして、これが私のアクションクラスのコードです:

package sample;
import org.hibernate.Session;
import data.*;
import java.util.*;

public class Events {
  org.hibernate.Session hibernateSession;

  public void setHibernateSession(org.hibernate.Session hibernateSession) throws Exception {
    this.hibernateSession = hibernateSession;
  }
  public void sethibernateSession(org.hibernate.Session hibernateSession) throws Exception {
    this.hibernateSession = hibernateSession;
  }

  @SuppressWarnings("unchecked")
  public String execute() {

    List<Event> events = hibernateSession.createQuery("from Event").list();

    for (Event theEvent : events) {
      // blah blah...
    }

    return "success";
  }
}

struts.xml で次の構成を使用して、hibernate セッションをアクション クラスに挿入するように完全な hibernate プラグインを構成したと思われます。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
  <constant name="hibernatePlugin.sessionTarget" value="hibernateSession" />
  <constant name="hibernatePlugin.transactionTarget" value="hibernateTransaction" />
  ..etc..
</struts>

しかし、アクション クラスが hibernateSession 変数にアクセスしようとすると、常に失敗し、常に null になります。したがって、依存性注入は失敗しているようです。

理由はありますか?助けてください、どうもありがとう。また、他の構成ファイルを確認する必要があるかどうかも尋ねてください。

4

1 に答える 1

0

さて、これは問題/解決策の集合体でした:

  1. log4j.propertiesは、「\ src」フォルダー(クラスパスのルート)にある必要があります
  2. 春に関連するすべての瓶を削除しました
  3. hibernate-annotationsダウンロードからlibフォルダーにすべてのjarファイルを追加しました
  4. DIが注入するアクションクラスにsetHibernateTransactionセッターを追加しました。
于 2009-11-19T05:32:49.943 に答える