NetBeans 7.1を開発環境として使用して、単純なSpring MVC 3 + Hibernate + ApacheTomcat7.0を実行/セットアップしようとしています。
Netbeansには、適切なディレクトリ構造にすでにセットアップされている、パッケージ化されたSpringおよびHibernateのfiles / jars/dependeciesが付属しています。
applicationContextでデータソースBeanをセットアップするために、2つの選択肢がありました
バリエーション#1 (Spring開発用にNetBeansで事前にパッケージ化されたデータソースであるデータソースclass =” org.springframework.jdbc.datasource.DriverManagerDataSource”を使用)
applicationContext.xmlからのスニペット
<!-- Declare a datasource that has pooling capabilities-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"
destroy-method="close" p:driverClass="com.mysql.jdbc.Driver"
p:jdbcUrl="jdbc:mysql://localhost:3306/yourmarketnet"
p:user="root"
p:password="arya6678"
p:acquireIncrement="5"
p:idleConnectionTestPeriod="60"
p:maxPoolSize="100"
p:maxStatements="50"
p:minPoolSize="10" />
<!-- Declare the Hibernate SessionFactory for retrieving Hibernate sessions -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" ref="classpath:hibernate.cfg.xml"/>
<property name="packagesToScan" value="com.yourmarketnet.*" />
</bean>
バリエーション2、エラー結果:アプリケーションの実行に失敗しました。ApacheTomcatログ:
org.springframework.beans.factory.BeanCreationException:ServletContextリソース[/WEB-INF/applicationContext.xml]で定義された「dataSource」という名前のBeanの作成中にエラーが発生しました:プロパティ値の設定中にエラーが発生しました。ネストされた例外はorg.springframework.beans.NotWritablePropertyExceptionです:Beanクラス[org.springframework.jdbc.datasource.DriverManagerDataSource]の無効なプロパティ'acquireIncrement':Beanプロパティ'acquireIncrement'は書き込み可能ではないか、無効なセッターメソッドを持っています。セッターのパラメータータイプはゲッターのリターンタイプと一致しますか?org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1361)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:call(StandardContext.java:5221)at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:334)at java.util.concurrent.FutureTask.run(FutureTask.java:166)at java.util.concurrent .ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:603)at java.lang.Thread.run(Thread.java:722)原因:org。 springframework.beans.NotWritablePropertyException:Beanクラスの無効なプロパティ'acquireIncrement' [org.springframework.jdbc.datasource.DriverManagerDataSource]:Beanプロパティ'acquireIncrement'が書き込み可能でないか、無効なセッターメソッドがあります。セッターのパラメータータイプはゲッターのリターンタイプと一致しますか?org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1052)でorg。
バリエーション#2
(データソースclass =” org.apache.commons.dbcp.BasicDataSource”を使用)次に、Apache Commons dbcp jarをダウンロードすることにし、プロジェクトに「commons-dbcp-1.4.jar」を追加しました。
applicationContext.xmlからのスニペット
<!-- Declare a datasource that has pooling capabilities-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" p:driverClass="com.mysql.jdbc.Driver"
p:jdbcUrl="jdbc:mysql://localhost:3306/yourmarketnet"
p:user="root"
p:password="arya6678"
p:acquireIncrement="5"
p:idleConnectionTestPeriod="60"
p:maxPoolSize="100"
p:maxStatements="50"
p:minPoolSize="10" />
<!-- Declare the Hibernate SessionFactory for retrieving Hibernate sessions -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" ref="classpath:hibernate.cfg.xml"/>
<property name="packagesToScan" value="com.yourmarketnet.*" />
</bean>
バリエーション2、エラー結果:アプリケーションの実行に失敗しました。ApacheTomcatログ:
org.springframework.beans.factory.BeanCreationException:ServletContextリソース[/WEB-INF/applicationContext.xml]で定義された「dataSource」という名前のBeanの作成中にエラーが発生しました:プロパティ値の設定中にエラーが発生しました。ネストされた例外はorg.springframework.beans.NotWritablePropertyExceptionです:Beanクラス[org.apache.commons.dbcp.BasicDataSource]の無効なプロパティ'acquireIncrement':Beanプロパティ'acquireIncrement'は書き込み可能ではないか、無効なセッターメソッドを持っています。セッターのパラメータータイプはゲッターのリターンタイプと一致しますか?org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)のorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1361)のorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.java:1086)コンカレント.FutureTask$Sync.innerRun(FutureTask.java:334)at java.util.concurrent.FutureTask.run(FutureTask.java:166)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)at java .util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:603)at java.lang.Thread.run(Thread.java:722)原因:org.springframework.beans.NotWritablePropertyException:Beanの無効なプロパティ'acquireIncrement'クラス[org.apache.commons.dbcp.BasicDataSource]:Beanプロパティ'acquireIncrement'が書き込み可能でないか、無効なセッターメソッドがあります。セッターのパラメータータイプはゲッターのリターンタイプと一致しますか?org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1052)でorg.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java: