Diskuze: Spring/REST/Json

Java Java Spring/REST/Json American English version English version

Aktivity (1)
Avatar
filipfr
Člen
Avatar
filipfr:26. srpna 19:02

Ahoj, podařilo se mi rozběhat Spring MVC, ale nedaří se mi zprovoznit @RestController, tak aby vracel json (asi ani XML, ale to mě momentálně nezajímá).
Při GET požadavku dostanu Status 406 The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.

kontroler:
@RestController
public class GreetingController
{
@RequestMappin­g(value = "/greeting", produces="appli­cation/json")
public Greeting greeting(/*@Re­questParam(va­lue="name", defaultValue="Wor­ld") String name*/) {
return new Greeting("hello", "Franta");
}

}

tomu samozřejmě odpovídá třída Greeting s gettery a settery + konstruktor

dispatcher-servlet.xml:

<?xml version='1.0' encoding='UTF-8' ?>
<!-- was: <?xml version="1.0" encoding="UTF-8"?> -->
<beans xmlns = "http://www.sprin­gframework.or­g/schema/bean­s"
xmlns:context = "http://www.sprin­gframework.or­g/schema/contex­t"
xmlns:mvc="ht­tp://www.sprin­gframework.or­g/schema/mvc"
xmlns:xsi = "http://www.w3­.org/2001/XMLSc­hema-instance"
xsi:schemaLocation = "http://www.sprin­gframework.or­g/schema/beans
http://www.springframework.org/…ng-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/…text-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/…ring-mvc.xsd">

<context:component-scan base-package = "controllers" />
<mvc:annotation-driven />

<bean id="contentNe­gotiationMana­ger" class="org.sprin­gframework.web­.accept.Conten­tNegotiationMa­nagerFactoryBe­an">
<property name="favorPat­hExtension" value="false" />
<property name="favorPa­rameter" value="true" />
<property name="mediaTypes" >
<value>
json=applicati­on/json
</value>
</property>
</bean>

</beans>

předpokládám, že chyba je v kontroleru, ale jistej si nejsem
ještě přidám web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id = "WebApp_ID" version = "2.4"
xmlns = "http://java.sun­.com/xml/ns/j2e­e"
xmlns:xsi = "http://www.w3­.org/2001/XMLSc­hema-instance"
xsi:schemaLocation = "http://java.sun­.com/xml/ns/j2ee
http://java.sun.com/…-app_2_4.xsd">

<display-name>Spring MVC Application</dis­play-name>

<servlet>
<servlet-name>HelloWeb</ser­vlet-name>
<servlet-class>
org.springfra­mework.web.ser­vlet.Dispatcher­Servlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>HelloWeb</ser­vlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

</web-app>

Zkusil jsem: Zkoušel jsem prakticky všechny dotazy do googlu, které mě napadly a aplikovat navrhovaná řešení. Nejvíc mi jich vyběhlo při ctrl c, ctrl v - chybové hlášky, ale nepomohlo nic.

Chci docílit: Snažím se přes Insomnii dostat příslušný json, abych s ním mohl pracovat.

 
Odpovědět 26. srpna 19:02
Avatar
filipfr
Člen
Avatar
Odpovídá na filipfr
filipfr:26. srpna 19:05

"dispatcher-servlet.xml" se samozřejmě reálně jmenuje "HelloWeb-servlet.xml"

 
Nahoru Odpovědět 26. srpna 19:05
Avatar
Odpovídá na filipfr
Matúš Olejník:26. srpna 19:53

Ahoj, skopíruj sem aj obsah z pom.xml a vlož ho medzi [ code] [ /code]

Nahoru Odpovědět 26. srpna 19:53
/* I am not sure why this works but it fixes the problem */
Avatar
filipfr
Člen
Avatar
Odpovídá na Matúš Olejník
filipfr:26. srpna 20:04

Ahoj, to nepůjde. To je projekt s přidaným Springem (není to Maven projekt). "pom.xml" neexistuje.

 
Nahoru Odpovědět 26. srpna 20:04
Avatar
Odpovídá na filipfr
Matúš Olejník:26. srpna 20:57

Hmm tak máš v projekte knižnice niečo ako jackson-core...jar, jackson-databind...jar?

Nahoru Odpovědět  +1 26. srpna 20:57
/* I am not sure why this works but it fixes the problem */
Avatar
filipfr
Člen
Avatar
Odpovídá na Matúš Olejník
filipfr:26. srpna 21:24

Aha to nemám. A písneš teda který jar. tam potřebuju?Díky

 
Nahoru Odpovědět 26. srpna 21:24
Avatar
filipfr
Člen
Avatar
Odpovídá na filipfr
filipfr:26. srpna 21:26

Já myslel, že je to defaultně ve Springu.

 
Nahoru Odpovědět 26. srpna 21:26
Avatar
Odpovídá na filipfr
Matúš Olejník:26. srpna 22:09

Skús toto mohlo by to stačiť. Inak keďže začínaš nechceš rovno začať používať aj Maven a prípade SpringBoot? Tuto https://start.spring.io/ si naklikáš dependencies ktoré potrebuješ, dáš generate project a následne ho otvoríš ako maven projekt.

Nahoru Odpovědět  +1 26. srpna 22:09
/* I am not sure why this works but it fixes the problem */
Avatar
filipfr
Člen
Avatar
Odpovídá na Matúš Olejník
filipfr:26. srpna 22:16

Díky, zkusím. Já ho nepoužil protože jsem se dočetl, že se hodí na větší projekty. A to jsem neplánoval.

 
Nahoru Odpovědět 26. srpna 22:16
Avatar
Odpovídá na filipfr
Matúš Olejník:26. srpna 22:19

Tak na menšom projekte si ho aspoň vyskúšaš :-)

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 26. srpna 22:19
/* I am not sure why this works but it fixes the problem */
Avatar
filipfr
Člen
Avatar
Odpovídá na Matúš Olejník
filipfr:1. září 10:15

Ahoj, tak jsem začal od píky s Mavenem a funguje to. Díky

 
Nahoru Odpovědět  +1 1. září 10:15
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.