Spring Boot sem o parent no pom

33 views
Skip to first unread message

Gabriel Feitosa

unread,
Jul 29, 2016, 5:06:24 PM7/29/16
to javace, CEJUG, DFJUG - Grupo de Usuarios Java do Distrito Federal
Fala galera,

   alguém já configurou o Spring Boot em um submódulo de um projeto maven?
A documentação oficial do Spring Boot não está me ajudando muito e já rodei nessa internet e não achei nada que me ajudasse.

Minhas configs do pom estão no arquivo em anexo.

Os meus testes pararam de funcionar, pois ele não encontra mais o context. =/



-- 
Gabriel Feitosa
Blog: gabrielfeitosa.com
Github: github.com/gabrielfeitosa
pom.xml

Armando Couto

unread,
Jul 29, 2016, 6:50:44 PM7/29/16
to DFJUG - Grupo de Usuarios Java do Distrito Federal, javace, ce...@googlegroups.com, Gabriel Feitosa
Segue em anexo um arquivo pom.xml que está funcionando. 

-- 
Att
Armando Couto 
JAVASCRIPT - CSM - LKU
--
-- Você está inscrito na lista de discussão técnica do CEJUG. Para sair da lista de discussão, envie um email para cejug+un...@googlegroups.com.
---
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/cejug.
Para mais opções, acesse https://groups.google.com/d/optout.
pom.xml

Gabriel Feitosa

unread,
Aug 1, 2016, 8:30:03 AM8/1/16
to CEJUG
Oi Armando,

    obrigado pela resposta, mas como eu havia informado no email anterior não posso utilizar o parent com o spring boot. Então, o pom que você enviou não é válido para meu caso. 

Pela documentação oficial, eu preciso adicionar ao pom o seguinte trecho:

<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${springboot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>


Só que com isso eu perco o starter do spring boot. Como estou utilizando o spring boot, queria saber se há alguma forma de rodar os testes sem precisar criar um arquivo de context para informar ao spring o que fazer.

Abaixo um exemplo de uma classe de teste e o stacktrace:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes={ConsumerApp.class})
public class AuditoriaServiceIT {

    @Autowired
    private AuditoriaService auditoriaService;

    @Test(expected = ConstraintViolationException.class)
    public void deveDispararUmaExececaoSeJsonNaoEAuditoriaValida() throws MensagemFormatoInvalidoException {
        auditoriaService.salvarMensagem("{'xyz': 'test'}");
    }
}


2016-08-01 09:18:26,558 INFO  - TestContext                    - Neither @ContextConfiguration nor @ContextHierarchy found for test class [br.com.basis.gedai.auditoria.consumer.AuditoriaServiceIT]
2016-08-01 09:18:26,648 ERROR - TestContextManager             - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@3ee0fea4] to prepare test instance [br.com.basis.gedai.auditoria.consumer.AuditoriaServiceIT@48524010]
java.lang.IllegalStateException: Failed to load ApplicationContext
at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContext(CacheAwareContextLoaderDelegate.java:99) ~[spring-test-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:122) ~[spring-test-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:109) ~[spring-test-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:75) ~[spring-test-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:312) [spring-test-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:211) [spring-test-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:288) [spring-test-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.12.jar:4.12]
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:284) [spring-test-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) [spring-test-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:88) [spring-test-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) [spring-test-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) [spring-test-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) [spring-test-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) [.cp/:?]
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) [.cp/:?]
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) [.cp/:?]
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) [.cp/:?]
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) [.cp/:?]
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) [.cp/:?]
Caused by: java.lang.IllegalArgumentException: Cannot load an ApplicationContext with a NULL 'contextLoader'. Consider annotating your test class with @ContextConfiguration or @ContextHierarchy.
at org.springframework.util.Assert.notNull(Assert.java:115) ~[spring-core-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContextInternal(CacheAwareContextLoaderDelegate.java:57) ~[spring-test-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContext(CacheAwareContextLoaderDelegate.java:91) ~[spring-test-3.2.4.RELEASE.jar:3.2.4.RELEASE]
... 25 more
Reply all
Reply to author
Forward
0 new messages