Tag: jax rs

Jersey Rest webservice重定向到同一页面

我有一个简单的restWeb服务,将用于加载页面。 加载页面后,将显示相同的页面,并显示确认消息或错误消息。 我使用下面的代码加载它…. jsp页面: – Username: &nbsp&nbsp&nbsp Password:&nbsp&nbsp&nbsp&nbsp&nbsp Select a file : 调节器 @Path(“/file”) public class FileUploadService { @POST @Path(“/upload”) @Consumes(MediaType.MULTIPART_FORM_DATA) public Viewable uploadFile( @Context HttpServletRequest request,@Context HttpServletResponse response, @FormDataParam(“file”) InputStream uploadedInputStream, @FormDataParam(“file”) FormDataContentDisposition fileDetail, @FormDataParam(“username”) String username, @FormDataParam(“password”) String password) throws NoSuchAlgorithmException, IOException, URISyntaxException { response.setHeader(“Location”, “/”); return new Viewable(“/index.jsp”,null); web.xml中 jersey-serlvet /rest/* 单击表单后,文件将被加载并返回到index.jsp页面,但页面的位置设置为。 […]

使用JAX-RS的不区分大小写的URL

有没有简单的方法在JAX-RS Web服务中提供不区分大小写的URL? 这样做的目的是产生一个“宽容的接受者”的网络服务。 1 我想可以使用filter来执行此操作.to[Lower|Upper]Case()所有传入的URL。 遗憾的是,这种实现要求程序员遵守纪律/一致性,以确保应用程序中的所有硬编码URL字符串都是严格的[低]。 另外,我还不知道JAX-RS类似于servletfilter。 如果重要,我使用Jersey作为我的JAX-RS实现。 1如同“在你所接受的东西中宽容,并严格按照你所生产的东西” (不记得来源)

是否可以使用可变数量的URI参数配置JAX-RS方法?

是否可以配置GET方法来读取可变数量的URI参数并将它们解释为可变参数(数组)或集合? 我知道查询参数可以作为列表/集读取,但在我的情况下我不能用它们。 例如: @GET @Produces(“text/xml”) @Path(“list/{taskId}”) public String getTaskCheckLists(@PathParam(“taskId”) int… taskId) { return Arrays.toString(taskId); } 提前致谢

JAXRS / RestEasy中的@Produces集合

我发现了一些我无法理解的奇怪行为。 我测试了4个类似的例子: 1 @GET @Produces(MediaType.APPLICATION_JSON) public Response produce() { List books = Arrays .asList(new Book[] { new Book(“aaa”, “AAA”, “12345”), new Book(“bbb”, “BBB”, “09876”) }); return Response.ok(books).build(); } 2 @GET @Produces(MediaType.APPLICATION_JSON) public List produce() { List books = Arrays .asList(new Book[] { new Book(“aaa”, “AAA”, “12345”), new Book(“bbb”, “BBB”, “09876”) }); return books; } 3 […]

HTTP请求中缺少元素 – 空或空?

我有一个HTTP请求javax.servlet.http.HttpServletRequest传入一个值,用于在使用JAX-RS的Java Web服务中处理的某些代码中。 Java中的POST函数正在使用application/json 。 有两个可能的值要传递给请求,调用一个X ,另一个Y ,假设两个都是字符串。 该请求要求将两个可能值中的至少一个视为“有效”。 当请求进入时,如果提供X并且Y完全不在请求中,那么检查Y是否存在的正确方法是什么? 你会检查Y.isEmpty()或Y == null吗? 提供X并不保证Y存在,反之亦然。

如何获取javax.ws.rs.core.UriInfo的实例

是否有任何javax.ws.rs.core.UriInfo实现,我可以用它来快速创建一个实例进行测试。 这个界面很长,我只需要测试一下。 我不想在这个界面的整个实现上浪费时间。 更新:我想为类似于此的函数编写unit testing: @GET @Path(“/my_path”) @Produces(MediaType.TEXT_XML) public String webserviceRequest(@Context UriInfo uriInfo);

如何使用泽西拦截器来获取请求体

我在我的项目中使用REST-Jersey 。 所有POST数据都以JSON格式发送,并在服务器端解组为相应的bean。 像这样的东西: 向服务器发送请求: $(‘a#sayHelloPost’).click(function(event){ event.preventDefault(); var mangaData = { title:’Bleach’, author:’Kubo Tite’ } var formData=JSON.stringify(mangaData); console.log(formData); $.ajax({ url:’rest/cred/sayposthello’, type: ‘POST’, data: formData, dataType: ‘json’, contentType:’application/json’ }) }); 有效载荷: {“title”:”Bleach”,”author”:”Kubo Tite”} 服务器端: @POST @Path(“/sayposthello”) @Produces(MediaType.APPLICATION_JSON) public Response sayPostHello(MangaBean mb){ System.out.println(mb); return Response.status(200).build(); } MangaBean: public class MangaBean { private String title; private String author; […]

在JAX-RS请求之间共享变量

我认为这是一个关于JAX-RS的一个非常基本的问题,但我不知何故不能轻易找到答案。 我正在尝试重构REST服务,该服务使用“标准”Javax servlet – 手动将请求路由到方法 – 进入“更干净”的JAX-RS实现。 当前应用程序在servlet init()期间设置一些变量。 它将它们分配为HttpServlet类的属性,以便它们在每个doGet()期间可用,并且可以作为参数传递给请求处理方法。 为清楚起见,其中一个是ConcurentHashMap,它充当缓存。 现在,使用JAX-RS,我可以扩展Application来设置我的资源类。 我还可以在每个资源实现中使用@Context注释在处理请求时注入ServletContext之类的东西。 但我不知道如何在应用程序初始化期间类似地注入变量集。 我正在使用JAX-RS的Apache Wink 1.3.0实现。

如何捕获RESTEasy Beanvalidation错误?

我正在使用JBoss-7.1和RESTEasy开发一个简单的RESTFul服务。 我有一个名为CustomerService的REST服务,如下所示: @Path(value=”/customers”) @ValidateRequest class CustomerService { @Path(value=”/{id}”) @GET @Produces(MediaType.APPLICATION_XML) public Customer getCustomer(@PathParam(“id”) @Min(value=1) Integer id) { Customer customer = null; try { customer = dao.getCustomer(id); } catch (Exception e) { e.printStackTrace(); } return customer; } } 当我点击URL http:// localhost:8080 / SomeApp / customers / -1时, @ Min约束将失败并在屏幕上显示堆栈跟踪。 有没有办法捕获这些validation错误,以便我可以准备一个带有正确错误消息的xml响应并显示给用户?

用于附加文件的RESTeasy客户端代码

我需要将一个文件附加到我的服务端点。 我通过POSTMAN(chrome浏览器插件测试rest服务)测试了function,它运行正常。 但是我需要用JUNIT来测试它。 对于这种情况,我使用的是RESTeasy客户端。 我正在尝试使用此代码: StringBuilder sb = new StringBuilder(); BufferedReader br = new BufferedReader(new FileReader(“C:/Temp/tempfile.txt”)); try { String line = br.readLine(); while (line != null) { sb.append(line); sb.append(System.lineSeparator()); line = br.readLine(); } } finally { br.close(); } byte[] file = sb.toString().getBytes(); Client client = ClientBuilder.newClient(); Invocation.Builder builder = client.target(webTarget.getUri() + “/attachment” ).request(MediaType.MULTIPART_FORM_DATA_TYPE); Response response […]