• ベストアンサー

Struts2、Spring、iBATIS splMapClientについて

Struts2、Spring、iBATIS で勤務管理サイトを 勉強の為に作成しているのですが、どうしても わからないエラーが発生してしまい、質問させて いただきました。 【事象】 ・eclipseよりサーバでの実行を起動させた際ですが、  @ResourceでDAOのBeanを注入時にエラーが発生してしまいます。  ※@Resourceを外せば当事象のエラーは発生しませんでした。 【applicationContext.xml】抜粋 <bean id="splMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean" scope="singleton"> <property name="configLocation" value="classpath:sqlMapConfig.xml"/> <property name="dataSource" ref="dataSource"/> </bean> <bean id="loginDao" class="login.LoginDao" scope="singleton"> <property name="splMapClient" ref="splMapClient"></property> </bean> 【sqlMapConfig.xml】 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <settings cacheModelsEnabled="true" statementCachingEnabled="true" enhancementEnabled="true" classInfoCacheEnabled="true" lazyLoadingEnabled="false" /> <sqlMap url="file:c:/eclipse/workspace/tiles/WebContent/WEB-INF/sql/login.xml" /> </sqlMapConfig> 【Login.java】 package login; import java.util.Map; import javax.annotation.Resource; import jp.co.hershe.struts2.util.Struts2Action; import com.opensymphony.xwork2.ActionSupport; @Struts2Action("Login") public class Login extends ActionSupport { private static final long serialVersionUID = 1L; @Resource private LoginDao loginDao; @Override public String execute() throws Exception { (もろもろ処理が入ります) } } 【エラーログ】 情報: Loaded JDBC driver: oracle.jdbc.driver.OracleDriver 2009/06/26 1:05:28 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons 情報: Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@269997: defining beans [org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,Login,org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,login,transactionManager,dataSource,TransactionInterceptor,splMapClient,loginDao]; root of factory hierarchy 2009/06/26 1:05:28 org.springframework.web.context.ContextLoader initWebApplicationContext 致命的: Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loginDao' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is org.springframework.beans.InvalidPropertyException: Invalid property 'splMapClient' of bean class [login.LoginDao]: No property 'splMapClient' found at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221) at …… ================================================== sqlMapClientのあたりで記述がおかしいのかと思いまして 見直しや検索などしてみたのですが、わからず、、 わかる方いらっしゃいましたらご教授ください。 よろしくお願いいたします。

  • Java
  • 回答数3
  • ありがとう数6

質問者が選んだベストアンサー

  • ベストアンサー
  • tamtam180
  • ベストアンサー率100% (1/1)
回答No.2

ただのtypoだと思います。 splMapClient(えすぴーえる)ではなく、sqlMapClient(えすきゅーえる)ではないでしょうか?

moritakos
質問者

お礼

ご指摘ありがとうございます。 お恥ずかしい限りです。ご指摘の通り修正した ところ直りました。ありがとうございました。

moritakos
質問者

補足

すいません。。 勉強の為にご教授いただきたいのですが、 ちなみに、applicationContext.xmlで指定して いるBean idのsqlMapClientというのは固定で どこかに定義されているものなのでしょうか、、  ※クラス名の頭文字を小文字にしたidを定義   する決まりがどこかに記載されているので   しょうか? applicationContext.xml内では、誤った 「splMapClient」で一致していたので問題 無いのかな、、と思っていたのが問題でした。。 度々で申し訳ありませんが、ご存知でしたら 教えてください。

その他の回答 (2)

  • tamtam180
  • ベストアンサー率100% (1/1)
回答No.3

きちんと動作したようで何よりです。 下の補足の件ですが、Idは自由につけて問題ありません。 今回問題になったのは下記の記述のproperty="splMapClient"です。 <bean id="loginDao" class="login.LoginDao" scope="singleton"> <property name="splMapClient" ref="splMapClient"></property> </bean> Daoはあるクラスを継承して作成していますよね? そのクラスにはsetSqlMapClientというメソッドがあるはずです。最初の記述のままですと、 loginDao.setSplMapClient(refで記述したBean) という意味になるのでそんなSetterは無くてエラーになったというわけです。 property name="sqlMapClient"と修正するだけで動くはずです。

moritakos
質問者

お礼

ご回答いただきありがとうございます。 DaoはSqlMapClientDaoSupportクラスを継承 していました(APIも確認しました)。 propertyのnameとrefについて理解いたしました。 この度は本当にありがとうございました。

  • hatimiti
  • ベストアンサー率68% (26/38)
回答No.1

私もこの構成(Struts2/Spring/iBatis)で自分なりのフレームワーク作ってますよ Invalid property 'splMapClient' of bean class [login.LoginDao]: No property 'splMapClient' found と言われているので、LoginDao のフィールドに splMapClient がないか、 そのsetterがないとかではないでしょうか?

moritakos
質問者

お礼

回答いただきありがとうございます。 tamtam180さんのご指摘のあった箇所を修正した ところ動きました。ありがとうございました。

関連するQ&A

  • Struts、Spring、iBATISについて

    Struts1、Spring3、iBATIS2 であるプロジェクトを 勉強の為に作成しているのですが、どうしても わからないエラーが発生してしまい、質問させて いただきました。 【現象】 eclipseによりtomcatを使用してサーバサービスを起動のとき、 エラーが発生してしまう。 【applicationContext.xml】抜粋 <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation" value="classpath:sqlMapConfig.xml" /> <property name="dataSource" ref="dataSource" /> </bean> <bean id="jtaTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <bean id="testDAO" class="bestone.app.dao.impl.testDAOImpl"> <property name="sqlMapClient" ref="sqlMapClient" /> </bean> 【testDAOImpl.java】 package bestone.app.dao.impl; import java.sql.SQLException; import bestone.app.dao.testDAO; import bestone.app.dao.bean.testBean; import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; public class testDAOImpl extends SqlMapClientDaoSupport implements itestDAO { public testBean selectInfo(testBean bean) throws SQLException { // TODO Auto-generated method stub return (testBean) getSqlMapClient().queryForObject("test.SELECT_INFO", bean); } } 【エラー内容】 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlMapClient' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse config resource: ServletContext resource [/WEB-INF/conf/sqlMapConfig.xml]; nested exception is com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: java.io.IOException: Could not find resource jp/co/best/app/dao/map/test_SqlMap.xml at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1403) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222).............................. ======================================= わかる方いらっしゃいましたらご教授ください。 よろしくお願いいたします。

  • Spring MVC + JPA + MySQL

    STSの[Simple Spring Web Maven]プロジェクトにおいて、Hibernate JPA経由でMySQLに接続し、データのselect・insertをすることについて、STS付属のtcServerで成功しました。 しかし、[Run as]→[Maven install]でwarを出力し、Tomcatにデプロイすると失敗します。 エラーメッセージ(下記のようにvalidation関係)を元に調べると、stackoverflowに何ページか(例えばhttp://stackoverflow.com/questions/21950607/abstractmethoderror-on-deploying-spring-4-0-in-tomcat-6のような情報)あったので、 pom.xmlのhibernate-validatorやvalidation-apiのバージョンを変えて色々試した結果が下記です。 ●hibernate-validatorを4.2.0.Final、validation-apiを1.1.0.Finalにすると 「Web ページが見つかりません」HTTP 404 ●hibernate-validatorを4.3.1.Finalや5.0.1.Finalや5.1.1.Final、validation-apiを1.1.0.Finalにすると HTTPステータス 500 - サーブレット dispatcherServlet のServlet.init()が例外を投げました 原因 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#0': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.ConfigurationImpl org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1482) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458) (中略) 原因 java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.ConfigurationImpl org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:41) javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:276) org.springframework.validation.beanvalidation.LocalValidatorFactoryBean.afterPropertiesSet(LocalValidatorFactoryBean.java:188) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1541) (中略) ●hibernate-validatorを5.1.1.Final、validation-apiを1.0.0.GAにすると HTTPステータス 500 - サーブレット dispatcherServlet のServlet.init()が例外を投げました 原因 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#0': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/validation/ParameterNameProvider org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1482) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458) (中略) 原因 java.lang.NoClassDefFoundError: javax/validation/ParameterNameProvider org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:41) javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:269) org.springframework.validation.beanvalidation.LocalValidatorFactoryBean.afterPropertiesSet(LocalValidatorFactoryBean.java:188) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1541) (中略) 原因 java.lang.ClassNotFoundException: javax.validation.ParameterNameProvider org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:41) javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:269) ちなみに、MySQLを使わないSpringプロジェクトはTomcatで正常動作しています。 また、フレームワークを使わずにサーブレットのみで書き、JDBCでMySQLに接続しSQL操作するプロジェクトはTomcatで正常動作しています。 また、war出力時にエラーや警告はありません。 解決策をどうかご教示ください。 宜しくお願いします。 [環境] Windows 7 Tomcat 7 MySQL 5 Spring Tool Suite 3.6.0

  • spring batchのエラーについて

    以下を参考にバッチを作りました。 http://blogs.innovationm.com/job-scheduling-with-spring-batch/ import org.springframework.batch.core.launch.support.SimpleJobLauncher; import org.springframework.batch.core.repository.JobRepository; import org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean; import org.springframework.batch.support.transaction.ResourcelessTransactionManager; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; @Configuration @EnableScheduling public class BatchScheduler { @Bean public ResourcelessTransactionManager transactionManager() { return new ResourcelessTransactionManager(); } @Bean public MapJobRepositoryFactoryBean mapJobRepositoryFactoryBean(ResourcelessTransactionManager resourcelessTransactionManager) throws Exception { MapJobRepositoryFactoryBean factoryBean = new MapJobRepositoryFactoryBean(resourcelessTransactionManager); factoryBean.afterPropertiesSet(); return factoryBean; } @Bean public JobRepository jobRepository(MapJobRepositoryFactoryBean factoryBean) throws Exception{ return (JobRepository) factoryBean.getObject(); } @Bean public SimpleJobLauncher jobLauncher(JobRepository jobRepository) { SimpleJobLauncher launcher = new SimpleJobLauncher(); launcher.setJobRepository(jobRepository); return launcher; } } すると以下のエラーが発生します。何か設定が必要なのでしょうか? Description: Parameter 0 of method mapJobRepositoryFactoryBean in position.BatchScheduler required a bean of type 'org.springframework.batch.support.transaction.ResourcelessTransactionManager' that could not be found. Action: Consider defining a bean of type 'org.springframework.batch.support.transaction.ResourcelessTransactionManager' in your configuration.

    • ベストアンサー
    • Java
  • 絶対パスを指定しているがエラーが出てしまう

    springにてメール配信ソフトを作成しているが、設定ファイルにて、パス指定を正確にしているにも関わらずエラーが出てしまいます。  servlet-context.xmlは以下の通り  ー抜粋ー  <beans:bean id="classpathProperties"   class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <beans:property name="locations"> <beans:list> <beans:value>classpath:classpath.properties</beans:value> </beans:list> </beans:property> </beans:bean> <beans:bean id="fileProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <beans:property name="locations"> <beans:list> <beans:value>files:${user.home}\Documents\workspace-sts-3.5.0.RELEASE\merumaga\src\main\webapp\resources\file.property</beans:value> </beans:list> </beans:property> </beans:bean>   の<beans:value>files:${user.home}\Documents\workspace-sts-3.5.0.RELEASE\merumaga\src\main\webapp\resources\file.property</beans:value>の部分は class path resource [file.properties] cannot be opened because it does not existというエラーがでてしまいます。 何回も見直したのですが、間違っているところは見当たりません。どこか違うところに原因があるのでしょうか。何かわかる方ご教授の程宜しくお願い致します。

  • StrutsのDataSourceの使い方。助けてください!

    今、DataSourceを使ったDB接続をやっているのですが、以下のエラーが出てしまいます。 javax.servlet.UnavailableException: Initializing application data source org.apache.struts.action.DATA_SOURCE at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:1091) at org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)・・・・・ おそらく、DataSourceが見つからないといわれていると思うのですが・・・。どこが悪いのかわかりません。以下はstruts-config.xmlのDataSourceの記述です。 <data-sources> <data-source> <set-property property="driverClass" value="org.gjt.mm.mysql.Driver" /> <set-property property="url" value="jdbc:mysql://localhost/test" /> <set-property property="user" value="root" /> <set-property property="password" value="root" /> </data-source> </data-sources> Mysqlを使っていて、DB名はtest。パスワード、ユーザ名はともにrootです。どこか気が付くところはありますか?また、JDBCDriverはどこに置けばいいんでしょうか?eclipseでやっているのですが・・・。まだ、素人な者で・・・。どうか、よろしくお願いいたします。

    • ベストアンサー
    • Java
  • Java Struts ~に対するゲッターメソッドがありません

    Java Struts WindowsXp Java Struts共に初心者です。 上記を使用してログイン画面を作成しています。 エラーが発生しているのですが 「Bean LoginFrm のプロパティ id に対するゲッターメソッドがありません」 と言われます。 参考サイトはいくつもあるのですが、そもそもイテレータを使用していないとか私の状況に一致する回答を見つけることができませんでした。 (JAVA、Struts共に慣れていないためか応用がきかないみたいです) loginTop.jsp login.jsp LoginFrm.java LoginAct.java struts-config.xml のいずれかが原因だとは思うのですが、そのどこかが皆目見当もつきません。 loginTop.jsp----------------------------- <html:form action="/login"> <table border="0"> <tr><td> ログインID<html:text name="LoginFrm" property="id" size="6" maxlength="5" /> </td></tr> <tr><td> パスワード<html:password name="LoginFrm" property="pass" size="6" maxlength="5" /> </td></tr> </table> </html:form> login.jsp---------------------- <html:form action="/login"> <table border="0"> <tr><td> A:<bean:write name="LoginFrm" property="id" /> </td></tr> <tr><td> B:<bean:write name="LoginFrm" property="pass" /> </td></tr> </table> </html:form> LoginFrm.java---------------------- private String id; private String pass; public String getID() { return id; } public void setID(String id) { this.id = id; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } LoginAct.java-------------------- throws Exception { request.setCharacterEncoding("Windows-31J"); LoginFrm logFrm = (LoginFrm) form; log.info(" user = "+logFrm.getID()); log.info(" user = "+logFrm.getPass()); return mapping.findForward("login"); } struts-config.xml--------------------------- <form-beans> <form-bean name="LoginFrm" type="loginForm.LoginFrm" /> </form-beans> ~ <action attribute="LoginFrm" input="/pages/loginTop.jsp" name="LoginFrm" path="/login" type="loginAction.LoginAct" scope="request" validate="true"> <forward name="login" path="/pages/login.jsp" /> </action> 以上です。 かなり長くなり申し訳ありません。

    • ベストアンサー
    • Java
  • struts1.3.10でエラー

    宜しくお願いします。 環境 Win7 eclipse 3.6.1 struts 1.3.10 tomcat 6.0 とあるサイトにあるサンプル(自分とは違うバージョンの環境)を、自分の環境において、そこからstrutsを勉強していこうとしてます。 最初の呼び出し画面index.jspは表示されますが、そこから次の呼び出し先(strutsのAction継承サーブレット)で HTTPステータス 404 - サーブレット Action が利用できません と出ます。 原因を探ろうとeclipseのコンソールを見たところ、 以下のようにエラーが出ていました。 -----------------------------------------------------------------  ・  ・  ・ 情報: 設定記述子 HLgame.xml を配備します 2011/10/31 15:02:35 org.apache.struts.action.ActionServlet initChain 情報: Loading chain catalog from jar:file:/D:/eclipse/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/HLgame/WEB-INF/lib/struts-core-1.3.10.jar!/org/apache/struts/chain/chain-config.xml 2011/10/31 15:02:35 org.apache.struts.util.PropertyMessageResources loadLocale 警告: Resource org/apache/struts/action/ActionResources_ja_JP.properties Not Found. 2011/10/31 15:02:35 org.apache.catalina.core.ApplicationContext log 致命的: Action: null java.lang.NullPointerException at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipChar(XMLEntityScanner.java:1414) at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.skipSeparator(XMLDTDScannerImpl.java:2057)  ・  ・  ・ 2011/10/31 15:02:35 org.apache.catalina.core.ApplicationContext log 情報: サーブレット Action を利用不可能にマークします 2011/10/31 15:02:35 org.apache.catalina.core.StandardContext loadOnStartup 致命的: サーブレット /HLgame がload()例外を投げました javax.servlet.UnavailableException at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:880) at org.apache.struts.action.ActionServlet.init(ActionServlet.java:359)  ・  ・  ・ ------------------------------------------------------------- 上記のうち、一番最初の致命的の箇所、 警告: Resource org/apache/struts/action/ActionResources_ja_JP.properties Not Found. について調べてみたのですが、 /HLgame/WebContent/WEB-INF/lib/以下に置いた、struts-core-1.3.10.jarを、 解凍してみたところ、 struts-core-1.3.10\org\apache\struts\actionフォルダがあり、そこに、 ActionResources_ja.propertiesはあったのですが、 ActionResources_ja_JP.propertiesはありませんでした。 struts-config.xmlの <message-resources parameter="・・・"/> は・・・の部分をいろいろ書き換えて試したものの、いずれも、エラー内容は上記のままでした。 他にどこを調べてよいかわからず困っています。 ActionResources_ja_JP.properties についてググってみましたが、参考になるものはありませんでした。 対処方法を考えていただけるとありがたく、 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • strutsでのエラーメッセージについて

    strutsを勉強し始めたばかりなので質問が漠然としていて申し訳ありませんが、以下のようなエラーメッセージが出て自分では解決できないので、みなさんに質問させていただきます。 エラーメッセージは以下のものです。 org.apache.jasper.JasperException: Cannot find bean org.apache.struts.taglib.html.BEAN in any scope at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) 文字制限の関係上以下省略 このようなエラーメッセージが出ます。 strutsはEclipse上で動作をさせています。 そして実行前にTomcatを動作させてからInternetExplorerに実行させたい場所を指定してJSPを呼び出そうとしている時に起こるエラーメッセージです。 質問が漠然としており非常に返答しにくいかもしれませんが,対処法が私には全く見当がつかないので,~を修正してみては?といったいくつかの解決方法を頂きたいのです。 質問内容がわかりにくい等ありましたら御指摘ください。 では、御返答宜しくお願いします。

    • ベストアンサー
    • Java
  • Spring2.0での連続したトランザクションについて

    JdbcDaoSupportを継承したDaoAImpl、DaoBImplクラスがあり、DaoCImplで A、Bの順にインターフェースを介してインスタンス化し、その順にそれぞれ 更新処理を走らせた時にDaoBImplでエラーが起こった場合、DaoAImplの更新処理を ロールバックさせたいと思いますが現在DaoAImplの処理がコミットされてしまいます。 Testが実行クラスで、以下に現在の実装を記します。※ここではDBUtilsを使用 ◆DAO(DaoBは同じ内容なので省略) -------------------------------------------------------------- public class DaoAImpl extends JdbcDaoSupport implements DaoA { /** DBコネクション */ private Connection con = null; /** update */ public void execute(String sql) throws SQLException { if (null == con) con = super.getConnection(); // 更新 QueryRunner qr = new QueryRunner(); qr.update(con, sql); } } -------------------------------------------------------------- public class DaoCImpl implements DaoC { /** update */ public void double_execute() throws SQLException { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); BeanFactory factory = (BeanFactory) context; DaoA a = (DaoA) factory.getBean("daoA"); DaoB b = (DaoB) factory.getBean("daoB"); a.execute("UPDATE A_TABLE SET FLG = 2"); b.execute("UPDATE A_TABLE SET FLG = 3"); } } -------------------------------------------------------------- public class Test { /** main */ public static void main(String[] args) throws Exception { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); BeanFactory factory = (BeanFactory) context; DaoC c = (DaoC) factory.getBean("daoC"); c.double_execute(); } } -------------------------------------------------------------- ◆applicationContext.xml -------------------------------------------------------------- ~中略~ <!-- Transaction --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource"><ref local="dataSource"/></property> </bean> <bean id="txAttribute" class="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource"> <property name="properties"> <props> <prop key="*execute">PROPAGATION_REQUIRES_NEW, -SQLException</prop> <prop key="select*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property> </bean> <bean id="txInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name="transactionManager"><ref bean="transactionManager"/></property> <property name="transactionAttributeSource"><ref bean="txAttribute"/></property> </bean> <bean id="autoProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="interceptorNames"> <list> <idref local="txInterceptor"/> </list> </property> <property name="beanNames"> <list> <value>dao*</value> </list> </property> </bean> <bean id="daoA" class="DaoAImpl"> <property name="dataSource"> <ref bean="dataSource"/> </property> </bean> <bean id="daoB" class="DaoBImpl"> <property name="dataSource"> <ref bean="dataSource"/> </property> </bean> <bean id="daoC" class="DaoCImpl"> </bean> </beans> -------------------------------------------------------------- 以上、お手数ですがご指摘お願い致します。

  • Spring MVC + Thymeleaf

    Spring MVC + Thymeleafを勉強している中で、下記のサイトを参考に勉強しておりますが、 どうしてもエラーが解消されなく、投稿させていただきました。 ◼︎環境 mac 10.10.4 eclipse 4.4 tomcat 8.0.21 java 1.8.0_31 mysql 5.6.25 pom.xml 内設定(一部抜粋) <!-- Spring / Hibernate version --> <version.spring>4.2.0.RELEASE</version.spring> <version.spring.data>1.8.2.RELEASE</version.spring.data> <version.spring.boot>1.2.5.RELEASE</version.spring.boot> <version.hibernate>4.3.5.FINAL</version.hibernate> <version.aopalliance>1.0</version.aopalliance> <version.thymeleaf>2.1.4.RELEASE</version.thymeleaf> <!-- Test --> <version.junit>4.11</version.junit> <version.dbunit>2.4.9</version.dbunit> <!-- Hibernate and JPA --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>${version.hibernate}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>${version.hibernate}</version> </dependency> <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.0-api</artifactId> <version>1.0.1.Final</version> </dependency> <dependency> <groupId>org.hibernate.java-persistence</groupId> <artifactId>jpa-api</artifactId> <version>2.0-cr-1</version> </dependency> <!-- JSR 303 with Hibernate Validator --> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.0.0.GA</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>4.3.0.Final</version> </dependency> ◼︎参考サイト http://brissyu.blogspot.jp/2014/07/spring-mvc-thymeleaf-web003.html ◼︎問題 上記サイトで、DBテストを実施しておりますが下記エラーが表示されてしまう。 2015/08/02 14:16:56:386 WARN - AnnotationConfigWebApplicationContext.refresh Exception encountered during context initialization - cancelling refresh attempt org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [com/base/init/DbConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean]: Factory method 'entityManagerFactory' threw exception; nested exception is java.lang.NoClassDefFoundError: org/hibernate/ejb/HibernatePersistence ◼︎試したこと バージョンなど、参考サイト(http://brissyu.blogspot.jp/2014/07/spring-mvc-thymeleaf-web001.html)に合わせて、検証もしましたがpoxの設定でHibernate 4.1.9.FINALを設定しましたが、エラーになり現状のバージョンで設定で実施しております。 お手数をお掛けいたしますが、上記解決方法のご教授をお願いいたします。

専門家に質問してみよう