Bonjour. J'ai decoupés un projet en plusieurs modules(ici un module= un projet)
j'ai 2 projets A et B dont B depend de A.
projet A contient un fichier jdbc-context.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>${parent.groupId}</groupId>
<artifactId>A</artifactId>
<packaging>jar</packaging>
<version>${parent.version}</version>
<name>SyGACUT Database</name>
<parent>
<groupId>org.laplace</groupId>
<artifactId>P</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../SyGACUT/pom.xml</relativePath>
</parent>
</projet> |
jdbc-context.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| <?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:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
<a href="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" target="_blank">http://www.springframework.org/schem...-beans-3.0.xsd</a>
<a href="http://www.springframework.org/schema/aop" target="_blank">http://www.springframework.org/schema/aop</a>
<a href="http://www.springframework.org/schema/aop/spring-aop-3.0.xsd" target="_blank">http://www.springframework.org/schem...ng-aop-3.0.xsd</a>
<a href="http://www.springframework.org/schema/mvc" target="_blank">http://www.springframework.org/schema/mvc</a>
<a href="http://www.springframework.org/schema/mvc/spring-mvc.xsd" target="_blank">http://www.springframework.org/schem...spring-mvc.xsd</a>
<a href="http://www.springframework.org/schema/tx" target="_blank">http://www.springframework.org/schema/tx</a>
<a href="http://www.springframework.org/schema/tx/spring-tx-3.0.xsd" target="_blank">http://www.springframework.org/schem...ing-tx-3.0.xsd</a>
<a href="http://www.springframework.org/schema/context" target="_blank">http://www.springframework.org/schema/context</a>
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="org.laplace" />
<!-- <context:component-scan base-package="org.laplace.service" /> -->
<!-- <context:property-placeholder location="/WEB-INF/jdbc.properties,/WEB-INF/mybatis/mybatis.properties" />-->
<context:property-placeholder location="classpath:jdbc.properties,classpath:mybatis.properties" />
<!-- Enable annotation style of managing transactions -->
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- Declare a datasource that has pooling capabilities -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- define the SqlSessionFactory, notice that configLocation is not needed when you use MapperFactoryBean -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="typeAliasesPackage" value="org.laplace.model"/>
<property name="mapperLocations" value="classpath*:org/laplace/mapper/**/*.xml" />
<!-- <property name="configLocation" value="WEB-INF/mybatis/sqlmap-config.xml" /> -->
</bean>
<!-- <bean id="CutAgentService" class="org.laplace.service.CutAgentService"/> -->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="org.laplace.mapper" />
</bean>
<!-- Declare a transaction manager -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- scan for mappers and let them be autowired -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="org.laplace.mapper" />
<!-- <property name="basePackage" value="${MapperInterfacePackage}" /> -->
</bean>
</beans> |
projet B depend de A
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>${parent.groupId}</groupId>
<artifactId>B</artifactId>
<packaging>war</packaging>
<version>${parent.version}</version>
<name>SyGACUT Web Poste Maven Webapp</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.laplace</groupId>
<artifactId>A</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../P/pom.xml</relativePath>
</parent>
</projet> |
je fais des test dans le projet a
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| package org.laplace.service;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
//import org.laplace.util.MyBatisUtil;
import org.laplace.model.CutAgent;
import org.laplace.dao.CutAgentMapper;
@Service
@Transactional
public class CutAgentService {
@Autowired
private SqlSession sqlSession; //This is to demonstrate injecting SqlSession object
public void insertAgent(CutAgent agent) {
CutAgentMapper agentMapper = sqlSession.getMapper(CutAgentMapper.class);
agentMapper.insert(agent);
/*SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
try {
CutAgentMapper agentMapper = sqlSession.getMapper(CutAgentMapper.class);
agentMapper.insert(agent);
sqlSession.commit();
} finally {
sqlSession.close();
}*/
}
public CutAgent getAgentById(String AgentId) {
CutAgentMapper agentMapper = sqlSession.getMapper(CutAgentMapper.class);
return agentMapper.selectByPrimaryKey(AgentId);
/*SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
try {
CutAgentMapper agentMapper = sqlSession.getMapper(CutAgentMapper.class);
return agentMapper.selectByPrimaryKey(AgentId);
} finally {
sqlSession.close();
}*/
}
public List<CutAgent> selectAllAgents() {
CutAgentMapper agentMapper = sqlSession.getMapper(CutAgentMapper.class);
return agentMapper.selectAllAgents();
/*SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
try {
CutAgentMapper agentMapper = sqlSession.getMapper(CutAgentMapper.class);
return agentMapper.selectAllAgents();
} finally {
sqlSession.close();
}*/
}
public void updateAgent(CutAgent agent) {
CutAgentMapper agentMapper = sqlSession.getMapper(CutAgentMapper.class);
agentMapper.updateByPrimaryKey(agent);
/*SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
try {
CutAgentMapper agentMapper = sqlSession.getMapper(CutAgentMapper.class);
agentMapper.updateByPrimaryKey(Agent);
sqlSession.commit();
} finally {
sqlSession.close();
}*/
}
public void deleteAgent(String AgentId) {
CutAgentMapper agentMapper = sqlSession.getMapper(CutAgentMapper.class);
agentMapper.deleteByPrimaryKey(AgentId);
/*SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
try {
CutAgentMapper agentMapper = sqlSession.getMapper(CutAgentMapper.class);
agentMapper.deleteByPrimaryKey(AgentId);
sqlSession.commit();
} finally {
sqlSession.close();
}*/
}
} |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| package org.laplace.test;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.laplace.model.CutAgent;
import org.laplace.dao.CutAgentMapper;
import org.laplace.service.CutAgentService;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:jdbc-context.xml")
public class SpringAgentServiceTest {
@Autowired
private CutAgentService agentService;
@Test
public void testGetUserById() {
CutAgent agent = agentService.getAgentById("323465X");
Assert.assertNotNull(agent);
System.out.println(agent);
}
@Test
public void testUpdateUser() {
long timestamp = System.currentTimeMillis();
CutAgent agent = agentService.getAgentById("323465X");
agent.setAGT_NOM("TestFirstName"+timestamp);
agent.setAGT_PRENOM("TestLastName"+timestamp);
agentService.updateAgent(agent);
CutAgent updatedUser = agentService.getAgentById("323465X");
Assert.assertEquals(agent.getAGT_NOM(), updatedUser.getAGT_NOM());
Assert.assertEquals(agent.getAGT_PRENOM(), updatedUser.getAGT_PRENOM());
}
//For Example: If we want to get count of how many records got updated by an Update query we can use SqlSession as follows:
//int updatedRowCount = sqlSession.update("com.sivalabs.mybatisdemo.mappers.UserMapper.updateUser", agent);
} |
et cela se deroule bien
dans le projet b
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>SyGACUTPosteComptable</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/laplace-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>laplace</servlet-name>
<servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/laplace-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>laplace</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
<a href="http://www.springframework.org/schema/beans" target="_blank">http://www.springframework.org/schema/beans</a>
<a href="http://www.springframework.org/schema/beans/spring-beans.xsd" target="_blank">http://www.springframework.org/schem...ring-beans.xsd</a>
<a href="http://www.springframework.org/schema/mvc" target="_blank">http://www.springframework.org/schema/mvc</a>
<a href="http://www.springframework.org/schema/mvc/spring-mvc.xsd" target="_blank">http://www.springframework.org/schem...spring-mvc.xsd</a>
<a href="http://www.springframework.org/schema/context" target="_blank">http://www.springframework.org/schema/context</a>
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- <import resource="classpath:/META-INFSyGACUTDB/jdbc-context.xml"/> -->
<mvc:default-servlet-handler/>
<mvc:annotation-driven/>
<context:component-scan base-package="org.laplace">
<context:include-filter type="regex" expression="(service|controller|validator)\..*"/>
</context:component-scan>
<import resource="classpath*:META-INF/A/jdbc-context.xml" />
<!--
<context:component-scan base-package="org.laplace.service" />
<context:component-scan base-package="org.laplace.controller" />
<context:component-scan base-package="org.laplace.validator" />
-->
<!-- Application Message Bundle -->
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="/WEB-INF/resources/messages.properties" />
<property name="cacheSeconds" value="3000" />
</bean>
<!-- Resolves view names to protected .jsp resources within the /WEB-INF/views directory -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| package org.laplace.validator;
import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;
import org.laplace.model.CutAgent;
@Component
public class RegistrationValidator implements Validator {
public boolean supports(Class<?> c) {
return CutAgent.class.isAssignableFrom(c);
}
public void validate(Object command, Errors errors) {
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "matricule", "field.matricule.empty");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "civilité", "field.civilite.empty");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "nom", "field.nom.empty");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "prenom", "field.prenom.empty");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "login", "field.login.empty");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "field.password.empty");
//CutAgent agentBean = (CutAgent)command;
//if(!isNumber(agentBean.getAge().trim()))
// errors.rejectValue("age", "field.age.NAN");
}
private boolean isNumber(String str){
for (int i = 0; i < str.length(); i++) {
//If we find a non-digit character we return false.
if (!Character.isDigit(str.charAt(i)))
return false;
}
return true;
}
} |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| package org.laplace.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import org.laplace.model.CutAgent;
import org.laplace.service.CutAgentService;
import org.laplace.validator.RegistrationValidator;
@Controller
@RequestMapping("/registration")
public class RegistrationController {
private RegistrationValidator validator = null;
private CutAgentService agentService = null;
@Autowired
public void setCutAgentService(CutAgentService agentService) {
this.agentService = agentService;
}
public RegistrationValidator getValidator() {
return validator;
}
@Autowired
public void setValidator(RegistrationValidator validator) {
this.validator = validator;
}
@RequestMapping(method=RequestMethod.GET)
public ModelAndView helloWorld() {
List<CutAgent> agentbds = agentService.selectAllAgents();
List<CutAgent> agents = getList();
String message = "<br><div style='text-align:center;'>"
+ "<h3>********** Hello World, Spring MVC Tutorial</h3>Registration **********</div><br><br>";
return new ModelAndView("registration", "agents", agents);
}
private List<CutAgent> getList() {
List<CutAgent> list = new ArrayList<CutAgent>();
CutAgent a1 = new CutAgent();
a1.setAGT_MAT("3");
a1.setAGT_NOM("sssy");
a1.setAGT_PRENOM("xxx");
a1.setAGT_CIVILITE("Mr");
a1.setAGT_LOGIN("cut");
a1.setAGT_PWD("cut");
list.add(a1);
CutAgent a2 = new CutAgent();
a2.setAGT_MAT("2");
a2.setAGT_NOM("Bccc");
a2.setAGT_PRENOM("cccy");
a2.setAGT_CIVILITE("Mr");
a2.setAGT_LOGIN("demo");
a2.setAGT_PWD("demo");
list.add(a2);
CutAgent a3 = new CutAgent();
a3.setAGT_MAT("1");
a3.setAGT_NOM("ddd");
a3.setAGT_PRENOM("xx");
a3.setAGT_CIVILITE("Mr");
a3.setAGT_LOGIN("x");
a3.setAGT_PWD("x");
list.add(a3);
return list;
}
} |
et enfin le test
package org.laplace.test;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.laplace.model.CutAgent;
import org.laplace.service.CutAgentService;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:laplace-servlet.xml")
public class SpringAgentServiceTest {
@Autowired
private CutAgentService agentService;
@Test
public void testGetUserById() {
CutAgent agent = agentService.getAgentById("id");
Assert.assertNotNull(agent);
System.out.println(agent);
}
@Test
public void testUpdateUser() {
long timestamp = System.currentTimeMillis();
CutAgent agent = agentService.getAgentById("id");
agent.setAGT_NOM("cvbcbbc");
agent.setAGT_PRENOM("ddddddd");
agentService.updateAgent(agent);
CutAgent updatedUser = agentService.getAgentById("id");
Assert.assertEquals(agent.getAGT_NOM(), updatedUser.getAGT_NOM());
Assert.assertEquals(agent.getAGT_PRENOM(), updatedUser.getAGT_PRENOM());
}
//For Example: If we want to get count of how many records got updated by an Update query we can use SqlSession as follows:
//int updatedRowCount = sqlSession.update("com.sivalabs.mybatisdemo.mappers.UserMapper.updateUser", agent);
} |
et là j'ai l'erreur
oct. 27, 2016 10:19:53 AM org.springframework.test.context.support.DefaultTestContextBootstrapper getDefaultTestExecutionListenerClassNames
INFOS: Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener]
oct. 27, 2016 10:19:53 AM org.springframework.test.context.support.DefaultTestContextBootstrapper getTestExecutionListeners
INFOS: Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@4a765, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@3e6358, org.springframework.test.context.support.DependencyInjectionTestExecutionListener@1550481, org.springframework.test.context.support.DirtiesContextTestExecutionListener@15f7ae5, org.springframework.test.context.transaction.TransactionalTestExecutionListener@bc464, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@124409e]
oct. 27, 2016 10:19:53 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFOS: Loading XML bean definitions from class path resource [laplace-servlet.xml]
oct. 27, 2016 10:19:53 AM org.springframework.context.support.GenericApplicationContext prepareRefresh
INFOS: Refreshing org.springframework.context.support.GenericApplicationContext@f5e5e3: startup date [Thu Oct 27 10:19:53 GMT 2016]; root of context hierarchy
oct. 27, 2016 10:19:53 AM org.springframework.web.servlet.handler.SimpleUrlHandlerMapping registerHandler
INFOS: Mapped URL path [/**] onto handler 'org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler#0'
oct. 27, 2016 10:19:53 AM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping register
INFOS: Mapped "{[/registration],methods=[GET]}" onto public org.springframework.web.servlet.ModelAndView org.laplace.controller.RegistrationController.helloWorld()
oct. 27, 2016 10:19:53 AM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping register
INFOS: Mapped "{[/welcome]}" onto public org.springframework.web.servlet.ModelAndView org.laplace.controller.WelcomeController.helloWorld()
oct. 27, 2016 10:19:54 AM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache
INFOS: Looking for @ControllerAdvice: org.springframework.context.support.GenericApplicationContext@f5e5e3: startup date [Thu Oct 27 10:19:53 GMT 2016]; root of context hierarchy
oct. 27, 2016 10:19:54 AM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache
INFOS: Looking for @ControllerAdvice: org.springframework.context.support.GenericApplicationContext@f5e5e3: startup date [Thu Oct 27 10:19:53 GMT 2016]; root of context hierarchy
oct. 27, 2016 10:19:54 AM org.springframework.context.support.GenericApplicationContext refresh
AVERTISSEMENT: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'registrationController': Unsatisfied dependency expressed through method 'setCutAgentService' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cutAgentService': Unsatisfied dependency expressed through field 'sqlSession'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [org.apache.ibatis.session.SqlSession]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
oct. 27, 2016 10:19:54 AM org.springframework.test.context.TestContextManager prepareTestInstance
GRAVE: Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@1550481] to prepare test instance [org.laplace.test.SpringAgentServiceTest@3295b0]
java.lang.IllegalStateException: Failed to load ApplicationContext
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'registrationController': Unsatisfied dependency expressed through method 'setCutAgentService' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cutAgentService': Unsatisfied dependency expressed through field 'sqlSession'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [org.apache.ibatis.session.SqlSession]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:648)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:349)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1219)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:751)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:108)
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:251)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
... 25 more
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cutAgentService': Unsatisfied dependency expressed through field 'sqlSession'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [org.apache.ibatis.session.SqlSession]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:569)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:349)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1219)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1128)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1056)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:640)
... 43 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [org.apache.ibatis.session.SqlSession]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1463)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1094)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1056)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:566)
... 56 more
oct. 27, 2016 10:19:54 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFOS: Loading XML bean definitions from class path resource [laplace-servlet.xml]
oct. 27, 2016 10:19:54 AM org.springframework.context.support.GenericApplicationContext prepareRefresh
INFOS: Refreshing org.springframework.context.support.GenericApplicationContext@1045c6c: startup date [Thu Oct 27 10:19:54 GMT 2016]; root of context hierarchy
oct. 27, 2016 10:19:54 AM org.springframework.web.servlet.handler.SimpleUrlHandlerMapping registerHandler
INFOS: Mapped URL path [/**] onto handler 'org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler#0'
oct. 27, 2016 10:19:54 AM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping register
INFOS: Mapped "{[/registration],methods=[GET]}" onto public org.springframework.web.servlet.ModelAndView org.laplace.controller.RegistrationController.helloWorld()
oct. 27, 2016 10:19:54 AM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping register
INFOS: Mapped "{[/welcome]}" onto public org.springframework.web.servlet.ModelAndView org.laplace.controller.WelcomeController.helloWorld()
oct. 27, 2016 10:19:54 AM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache
INFOS: Looking for @ControllerAdvice: org.springframework.context.support.GenericApplicationContext@1045c6c: startup date [Thu Oct 27 10:19:54 GMT 2016]; root of context hierarchy
oct. 27, 2016 10:19:54 AM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache
INFOS: Looking for @ControllerAdvice: org.springframework.context.support.GenericApplicationContext@1045c6c: startup date [Thu Oct 27 10:19:54 GMT 2016]; root of context hierarchy
oct. 27, 2016 10:19:54 AM org.springframework.context.support.GenericApplicationContext refresh
AVERTISSEMENT: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'registrationController': Unsatisfied dependency expressed through method 'setCutAgentService' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cutAgentService': Unsatisfied dependency expressed through field 'sqlSession'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [org.apache.ibatis.session.SqlSession]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
oct. 27, 2016 10:19:54 AM org.springframework.test.context.TestContextManager prepareTestInstance
GRAVE: Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@1550481] to prepare test instance [org.laplace.test.SpringAgentServiceTest@1be7b63]
java.lang.IllegalStateException: Failed to load ApplicationContext
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'registrationController': Unsatisfied dependency expressed through method 'setCutAgentService' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cutAgentService': Unsatisfied dependency expressed through field 'sqlSession'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [org.apache.ibatis.session.SqlSession]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:648)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:349)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1219)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:751)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:108)
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:251)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
... 25 more
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cutAgentService': Unsatisfied dependency expressed through field 'sqlSession'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [org.apache.ibatis.session.SqlSession]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:569)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:349)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1219)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1128)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1056)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:640)
... 43 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [org.apache.ibatis.session.SqlSession]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1463)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1094)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1056)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:566)
... 56 more
Partager