我有网络资源
@Path("/test")
public class Test {
private TestService service;
@GET
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public Response hello() {
service = new TestService();
// String o = service.helloWorld();
Boolean a = true;
if (a)
throw new ExampleException();
return Response.ok().build();
}
}
我的应用配置类
@ApplicationPath("/rest")
public class TestApp extends Application {
public Set<Class<?>> getClasses() {
Set<Class<?>> s = new HashSet<Class<?>>();
s.add(Test.class);
/** you need to add ExceptionMapper class as well **/
s.add(ExampleExceptionMaper.class);
return s;
}
}
例外
public class ExampleException extends RuntimeException implements Serializable {
/**
*
*/
private static final long serialVersionUID = 6844337827096329241L;
public ExampleException() {
super("Test");
}
}
异常映射器
@Provider
public class ExampleExceptionMaper implements ExceptionMapper<ExampleException> {
@Override
public Response toResponse(ExampleException arg0) {
return Response.status(404).build();
}
}
在我的示例中,异常映射器不起作用。我试图通过java(将异常映射器类添加到应用程序配置中的hashmap)或web.xml(包括它在上下文参数中)来配置它。我的 wildfly 代码在 Java 8 类结束工作:ThreadPoolExecutor.class。我认为wildfly在我对资源url的示例请求中结束了它的所有任务。我在抛出异常之前编码工作正常,但在它没有对我的测试请求返回任何响应之后。
有人帮忙吗?