簡體   English   中英

如何使用REST Easy捕獲錯誤的URL請求

[英]How do i catch bad URL requests using REST easy

我在“ / rest / role /” whatever“下有幾個端點

我如何捕獲錯誤的請求,例如“ rest / role / dbbhwbhb / wdwdwed

如果我使用:

    @GET
    @Path("/{param}")
    @Produces(MediaType.TEXT_PLAIN)
    public Response badURLS() {
        return Response.ok().entity("bad url").build();
    }

這捕獲了休息/角色/ dfsdfsds,但是仍然沒有捕獲到休息/角色/ sdsasd / asdad。 如何設置方法,以便在未命中任何端點的情況下返回默認消息?

JBoss方法

RESTeasy方法

編輯

正如我之前發送給您的-第二個鏈接可以解決問題。

給定以這種方式編寫的映射器和結構:

package atata;

import javax.ws.rs.NotFoundException;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

@Provider
public class _404Handler implements ExceptionMapper<NotFoundException> {

    public Response toResponse(NotFoundException exception) {
        return Response.status(500).entity(new ResponseEntity(333, "Got 404.")).type(MediaType.APPLICATION_JSON).build();
    }

}

設定檔

package atata;

import java.util.HashSet;
import java.util.Set;

import javax.ws.rs.core.Application;


public class EmployeeApplication extends Application {

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

    public EmployeeApplication() {
        singletons.add(new MessageRestService());
        singletons.add(new _404Handler());
    }

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

}

Pom:

<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>io.atata</groupId>
    <artifactId>atata</artifactId>
    <packaging>war</packaging>
    <version>1.0</version>
    <name>atata Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-jaxrs -->
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jaxrs</artifactId>
            <version>3.0.19.Final</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-servlet-initializer</artifactId>
            <version>3.0.4.Final</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jackson-provider</artifactId>
            <version>3.0.14.Final</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>atata</finalName>
    </build>

終點:

包atata;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

@Path("/roles")
public class MessageRestService {

    @GET
    @Path("/1")
    @Produces(MediaType.APPLICATION_JSON)
    public Response badURLS() {
        return Response.ok().entity("OK").build();
    }

}

你會得到

在此處輸入圖片說明

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM