我有网络资源
@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(包括在context-param中)来配置它。我的wildfly代码结束于Java 8类:ThreadPoolExecutor.class。我认为wildfly在我的资源url上的示例请求中结束了所有任务。 我在抛出异常之前的代码工作正常,但是在它没有在我的测试请求上返回任何响应之后。
有人帮忙吗?