Como retorno json de requisição com spring boot

Olá amigos, estou tentando retornar um json de uma requisicao (GET) porém nao estou conseguindo, esta dando o seguinte erro ao iniciar o servidor.

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘linguagemController’: Failed to introspect bean class [br.com.spring.boot.controller.LinguagemController] for lookup method metadata: could not find class that it depends on; nested exception is java.lang.NoClassDefFoundError: net/minidev/json/JSONObject
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:269) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineConstructorsFromBeanPostProcessors(AbstractAutowireCapableBeanFactory.java:1118) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1091) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866) ~[spring-context-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) ~[spring-context-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE]
at br.com.spring.boot.Boot.main(Boot.java:12) [classes/:na]
Caused by: java.lang.NoClassDefFoundError: net/minidev/json/JSONObject
at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.8.0_151]
at java.lang.Class.privateGetDeclaredMethods(Unknown Source) ~[na:1.8.0_151]
at java.lang.Class.getDeclaredMethods(Unknown Source) ~[na:1.8.0_151]
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:613) ~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:524) ~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:510) ~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:247) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
… 18 common frames omitted
Caused by: java.lang.ClassNotFoundException: net.minidev.json.JSONObject
at java.net.URLClassLoader.findClass(Unknown Source) ~[na:1.8.0_151]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_151]
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) ~[na:1.8.0_151]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_151]
… 25 common frames omitted

O que estou fazendo de errado?

Segue meu codigo de tentativa:

@GetMapping("/testeJson")
@ResponseBody
public JSONObject testeJson(){
JSONObject obj = new JSONObject();
obj.put(“name”, “matheus”);
return obj;
}

alguem por favor???

alguem ???

Amigo segue esse trecho de código como exemplo

@RestController
@RequestMapping("/api")
public class TituloJsonController {

@CrossOrigin
@RequestMapping("/todosTitulos")
public List<Titulo> getTodosTitulos() {		
	List<Titulo> listaTitulos = titulos.findAll();		
	return listaTitulos;
}

}

Olá, tente desta forma:

@GetMapping("/testeJson")
public ResponseEntity<JSONObject> testeJson() {
     JSONObject obj = new JSONObject();
     obj.put("name","matheus");
     return ResponseEntity.ok().body(obj);
}

Está com pressa? Sugiro publicar e pagar o experts exchange.
É um fórum pago onde você posta suas dúvidas e alguém, que ganha para isso, responde rápido.

Leia as regras do fórum e estude.

Me falaram que usar @CrossOrigin desse jeito é gambiarra, uma vez que um CORS bem configurado não é pra apresentar problemas com isso. Mas foi só o que me falaram.

O problema é que tem milhares de tutoriais sobre como configurar o filtro cors, mas, 95% não funcionam. Acredite, eu já tive vários problemas com isso e, como eram coisas pontuais, resolvi com esse procedimento técnico não homologado, vulgo gambiarra.

Sem dúvida. Eu já tentei uma porrada de jeitos de configurar, e até certo ponto fica maravilhoso! Aí eu crio um novo endpoint e acaba com tudo

1 curtida