使用eclipse luna运行的tomcat 8上的简单RESTeasy服务出现404错误

时间:2016-03-15 14:45:02

标签: java eclipse maven tomcat resteasy

我总是得到404响应。 资源未找到。用tomcat测试 8.0。以下是 的信息。

网址:http://localhost:8080/ESTServer/rest/message/hello

的pom.xml

<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ESTServer</groupId>
<artifactId>ESTServer</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <warSourceDirectory>WebContent</warSourceDirectory>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>
<repositories>
    <repository>
        <id>JBoss repository</id>
        <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>3.0.13.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-servlet-initializer</artifactId>
        <version>3.0.13.Final</version>
    </dependency>
</dependencies>

的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">    <display-name>ESTServer</display-name>
<context-param>
    <param-name>resteasy.servlet.mapping.prefix</param-name>
    <param-value>/rest</param-value>
</context-param>
<servlet>
    <servlet-name>resteasy-servlet</servlet-name>
    <servlet-class>
        org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
    </servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.mota.rest.CaDistributionApplication</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>resteasy-servlet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

服务代码:

package com.mota.rest;


import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;

@Path("/message")
public class CaDistributionService {

@GET
@Path("/{param}")
public Response printMessage(@PathParam("param") String msg) {

    String result = "Restful example : " + msg;

    return Response.status(200).entity(result).build();

}
}

project structure

CaDistributionApplication.java

package com.mota.rest;

import javax.ws.rs.core.Application;
import java.util.HashSet;
import java.util.Set;
import com.mota.rest.CaDistributionService;;

public class CaDistributionApplication extends Application{


private Set<Object> singletons = new HashSet<Object>();

public CaDistributionApplication() {
    singletons.add(new CaDistributionService());
}

@Override
public Set<Object> getSingletons() {
    return singletons;
}

}

我在这里缺少什么? 请帮忙!!!!

1 个答案:

答案 0 :(得分:1)

我刚尝试重启日食。 多次清理/构建/刷新/安装。 检查Target文件夹是否已生成 战争和课程。在调试模式下启动tomcat。 但基本上没有改变代码中的任何内容。

是的,它终于有效了。