Java - 访问 Tomcat/Jersey url 给出 404 Not Found

标签 java xml rest tomcat jersey

在过去的两个小时里,我一直在为此苦苦挣扎。我看过许多不同的 StackOverflow 答案(很多问题都像这个),但没有一个对我有用。

我有一个简单的“CountryResources”类,它使用 @Path("/countries"),但是当我导航到 localhost:8080/restservices/countries 时它只是给我一个 404 错误。

CountryResource 类,位于 worldmap.services 包中:

package worldmap.services;

import model.Country;
import model.CountryService;
import model.ServiceProvider;

import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonArrayBuilder;
import javax.json.JsonObjectBuilder;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("/countries")
public class CountryResource {

    @GET
    @Produces("application/json")
    public String getCountries() {
        System.out.println("Opgehaald");
        CountryService cs = ServiceProvider.getWorldService();
        JsonArrayBuilder jab = Json.createArrayBuilder();

        for(Country c : cs.getAllCountries()) {
            JsonObjectBuilder job = Json.createObjectBuilder();
            job.add("code", c.getCode());
            job.add("name", c.getName());
            job.add("continent", c.getContinent());
            job.add("region", c.getRegion());
            job.add("surface", c.getSurface());
            job.add("population", c.getPopulation());
            job.add("government", c.getGovernment());

            jab.add(job);
        }
        JsonArray array = jab.build();
        return array.toString();
    }

}

网络 XML:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.0"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         metadata-complete="false">

    <servlet>
        <servlet-name>Jersey REST Service</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>

        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>worldmap.services</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey REST Service</servlet-name>
        <url-pattern>/restservices/*</url-pattern>
    </servlet-mapping>

</web-app>

最佳答案

问题已经发现:Maven没有将程序的依赖复制到target的lib文件夹中。将不得不尝试找出解决方法。

关于Java - 访问 Tomcat/Jersey url 给出 404 Not Found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37631278/

相关文章:

java - 为什么我可以 "fake"Java 异常的堆栈跟踪?

javascript - 将一个数组的索引乘以另一个数组的相应索引。将所有结果加在一起。 JavaScript

python - 如何为具有特定属性值的xml元素选择数据,并根据key区分多个元素?

iphone - iOS 开发 : When making a POST request, 如果我在 URL 中包含参数真的很重要吗?

c# - 如何在不使用 (?) 符号的情况下将参数传递给 rest web 服务?

java - 在jsp里面写java有性能差异吗?

java - Tomcat - 上下文初始化失败

java - 安静的服务没有返回正确的对象

java - Method.invoke 抛出 java.lang.IllegalArgumentException : wrong number of arguments

xml - XSLT:排序路径跟踪