0

説明:

  1. SpringMVC ベースの Java EE プロジェクトをセットアップします。
  2. プロジェクトを実行し、うまく機能します
  3. Hibernate4 フレームワーク ライブラリのサポートを追加します。

問題、例外

1)「dataSource」Bean を SpringMVC 構成ファイルに追加した後、起動時に常にスローされます。

ServletContext リソース [/WEB-INF/dispatcher-servlet.xml] の XML ドキュメントの 45 行目が無効です。ネストされた例外は org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: 一致するワイルドカードは厳密ですが、要素 'tx:annotation-driven' の宣言が見つかりません。

2) The matching wildcard is strict, but no declaration can be found for element 'tx:annotation-driven'を参考にしました

それでも同じエラー。

SpringMVC 構成 XML ファイル

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
    <property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=test" />
    <property name="username" value="root" />
    <property name="password" value="123edkx" />
</bean>

<mvc:resources mapping="/resources/**" location="/resources/" />
<!--HandlerMapping-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>

<!--HandlerAdapter-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

<!--ViewResolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/Views/" />
    <property name="suffix" value=".jsp" />
</bean>

<!--Controller -->
<bean class="com.annotation.controllers.Test" />
<bean class="com.annotation.controllers.LogicController" />

質問:

誰もこれを修正する方法を知っていますか? または、SpringMVC3.x と Hibernate 4 に関する統合チュートリアルをアドバイスしてください。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:mvc="http://www.springframework.org/schema/mvc"
   xmlns:tx="http://www.springframework.org/schema/tx"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
                       http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
                       http://www.springframework.org/schema/mvc
                       http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
                       http://www.springframework.org/schema/tx
                       http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
    <property name="url" value="jdbc:sqlserver://localhost:1443;DatabaseName=beta_nl" />
    <property name="username" value="root" />
    <property name="password" value="12rekasQL" />
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <!--<property name="packagesToScan" value="com.vo" />-->
    <property name="dataSource" ref="dataSource"/>
    <property name="mappingLocations" value="classpath:com/vo/*.hbm.xml"/>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.SQLServer2008Dialect</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>
</bean>

<tx:annotation-driven transaction-manager="transactionManager" />

<bean id="transactionManager"
      class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>

<mvc:resources mapping="/resources/**" location="/resources/" />
<!--HandlerMapping-->
<!--<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>

<!--HandlerAdapter-->
<!--<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

<!--ViewResolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/Views/" />
    <property name="suffix" value=".jsp" />
</bean>

<!--Controller -->
<bean class="com.annotation.controllers.Test" />
<bean class="com.annotation.controllers.LogicController" />

4

2 に答える 2

0

構成ファイルの先頭に xsd を追加しなかったことが原因だと思います。以下は、使用する xsd と定義です。xmlns:tx="http://www.springframework.org/schema/tx" http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx- 3.0.xsd "。また、tx アノテーションを使用する場合は、トランザクション マネージャーも構成する必要があります。

于 2012-11-21T08:12:37.833 に答える
0

最近http://blog.springsource.org/2012/04/06/migrating-to-spring-3-1-and-hibernate-4-1/を使用しましたが、その構成は問題なく機能します。

名前空間の宣言などを含む完全な構成を投稿してください。

更新: xsi 名前空間宣言の存在を確認してください

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
于 2012-11-21T08:17:13.767 に答える