• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błąd podczas wysłania zapytania http do usługi internetową która ma na celu zwrócenie prostego obiektu.

Object Storage Arubacloud
0 głosów
89 wizyt
pytanie zadane 8 lutego w Java przez Wojo772233 Początkujący (420 p.)

Cześć. Tworzę banalną usługę internetową która ma na celu zwrócenie prostego obiektu Alien składającego się z nazwy (String) i punktów (int), a moje pytanie brzmi, dlaczego po wpisaniu adresu http://localhost:8080/demorest/webapi/aliens ciągle otrzymuję komunikat w konsoli:

"MessageBodyWriter not found for media type=application/xml"... 

 

piszę kod z odcinka https://www.youtube.com/watch?v=BZi44GOD8kY&t=929s

u niego działa, u mnie nie.

 

oto kod:

<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>com.example</groupId>
    <artifactId>jersey-quickstart-webapp</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>jersey-quickstart-webapp</name>
    <url>http://maven.apache.org</url>

    <dependencies>
        <!-- Jersey dependencies -->
        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet</artifactId>
            <version>3.1.5</version>
        </dependency>
        <!-- JAXB for XML binding -->
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-runtime</artifactId>
            <version>2.3.4</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>jersey-quickstart-webapp</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.4.0</version>
            </plugin>
        </plugins>
    </build>
</project>
package com.telusko.demorest;

import java.util.Arrays;
import java.util.List;

import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;

@Path("aliens")
public class AlienResource {
	@GET
	@Produces(MediaType.APPLICATION_XML)
	public List<Alien> getAlien() {
		System.out.println("getAlien called...");
		Alien a1 = new Alien();
		a1.setName("Wojo");
		a1.setPoints(60);
		
		Alien a2 = new Alien();
		a2.setName("Dojo");
		a2.setPoints(30);
		
		List<Alien> aliens = Arrays.asList(a1,a2);
		
		return aliens;
		
	}
}
package com.telusko.demorest;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement

public class Alien {
	String name;
	int points;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getPoints() {
		return points;
	}
	public void setPoints(int points) {
		this.points = points;
	}
	
	
}
<?xml version="1.0" encoding="UTF-8"?>
<!-- This web.xml file is not required when using Servlet 3.0 container,
     see implementation details http://jersey.java.net/nonav/documentation/latest/jax-rs.html -->
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="5.0">
    <servlet>
        <servlet-name>Jersey Web Application</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>com.telusko.demorest</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey Web Application</servlet-name>
        <url-pattern>/webapi/*</url-pattern>
    </servlet-mapping>
</web-app>

 

1 odpowiedź

0 głosów
odpowiedź 8 lutego przez Wiciorny Ekspert (273,810 p.)

A sprawdź czy dodanie zależności do uwzględnienia Typu dla @Media Ci nie pomoże.

Poczytaj sobie ogólnie o https://docs.oracle.com/javase/tutorial/jaxb/intro/, domyślny typ to JSON
A wiedzę, że korzystasz z Jaxb glassfisha.  - > stąd ten import, w przeciwnym razie jeszcze trzeba będzie znaleźć inną zaleznośc. 

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-jaxb</artifactId>
    <version>3.0.2</version>
</dependency>

 

Podobne pytania

0 głosów
0 odpowiedzi 634 wizyt
pytanie zadane 7 marca 2016 w Java przez bercik9991 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 748 wizyt
0 głosów
0 odpowiedzi 461 wizyt
pytanie zadane 7 września 2021 w JavaScript przez rszczepanski02 Obywatel (1,180 p.)

92,760 zapytań

141,684 odpowiedzi

320,468 komentarzy

62,104 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...