I am new to java, try to use Stripes + mybatis 3.06 + spring 3.1 +
eclipse for a simple form application. I unit test one mapper, works
fine. However, when runs on Tomcat, there is an error:
Mar 19, 2012 1:24:14 PM org.apache.catalina.core.StandardContext
listenerStart
SEVERE: 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 'sqlSessionFactory' defined in class path
resource [applicationContext.xml]: Invocation of init method failed;
nested exception is java.lang.NoSuchMethodError:
org.apache.ibatis.session.Configuration.setDatabaseId(Ljava/lang/
String;)V
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:
1420)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:
519)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:
456)
at
org.springframework.beans.factory.support.AbstractBeanFactory
$1.getObject(AbstractBeanFactory.java:295)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:
222)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:
292)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:
194)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:
563)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:
900)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:
455)
at
org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:
294)
at
org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:
215)
at
org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:
47)
at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:
4779)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:
5273)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase
$StartChild.call(ContainerBase.java:1568)
at org.apache.catalina.core.ContainerBase
$StartChild.call(ContainerBase.java:1558)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown
Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor
$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoSuchMethodError:
org.apache.ibatis.session.Configuration.setDatabaseId(Ljava/lang/
String;)V
at
org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:
393)
at
org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:
293)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:
1479)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:
1417)
... 22 more
Mar 19, 2012 1:24:14 PM org.apache.catalina.core.StandardContext
startInternal
SEVERE: Error listenerStart
Mar 19, 2012 1:24:14 PM org.apache.catalina.core.StandardContext
startInternal
SEVERE: Context [/GoesStripeDev] startup failed due to previous errors
Mar 19, 2012 1:24:14 PM org.apache.catalina.core.ApplicationContext
log
INFO: Closing Spring root WebApplicationContext
Mar 19, 2012 1:24:14 PM org.apache.catalina.loader.WebappClassLoader
clearReferencesJdbc
SEVERE: The web application [] registered the JDBC driver
[com.microsoft.sqlserver.jdbc.SQLServerDriver] but failed to
unregister it when the web application was stopped. To prevent a
memory leak, the JDBC Driver has been forcibly unregistered.
Mar 19, 2012 1:24:14 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Mar 19, 2012 1:24:14 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Mar 19, 2012 1:24:14 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1358 ms
Here is my applicationContext.xml
<?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:tx="
http://www.springframework.org/schema/tx"
xmlns:jdbc="
http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/jdbc
http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd">
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:database.properties</value>
</property>
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="$
{database.driverClassName}" />
<property name="url" value="${database.url}" />
<property name="username" value="${database.username}" /
>
<property name="password" value="${database.password}" /
>
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:annotation-driven />
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath:/com/myApp/
mapper/*.xml" />
<property name="typeAliasesPackage" value="com.myApp.domain" /
>
</bean>
<bean id="userMapper"
class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface"
value="com.myApp.mapper.UserMapper" />
</bean>
</beans>
database: SQL Server 2005, could anyone shed some light on this?
Thanks.