Tag: jax rs

从JAX-RS servlet动态创建映像

是否可以创建PNG图像并将其作为JAX-RS资源的一部分直接输出到浏览器? 像这样的东西: @Path(“img/{externalId}”) @Stateless @Produces({“image/png”}) public class MyImgResource { @GET public Response (@PathParam(“externalId”) String externalId) { // create image, write to buffered output stream return Response.ok().entity(stream).build(); } } 这会有用吗? 我是否必须处理正确的标题(Content-Type),还是由@Produces注释完成? 可以输出图像作为Response吗? 我可以从流构建Response吗?

什么Maven工件包含javax.ws.rs.Path?

我正在使用Bill Burke的JAX-RS Restful Java中的示例。 我正在使用intellij并创建了一个Maven项目来创建一个“Hello World”Web服务。 我知道JAX-RS是一个规范,而不是一个实现。 我想尝试Apache CXF实现。 我如何找出什么jar,或Maven工件包含必要的类: import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.GET;

在GlassFish Server中找不到JAX-RS资源

我一直在尝试使用NetBeans Ide创建一个简单的Restful WebService。 我的Java EE版本是:Java EE 7 Web。 我创建了一个新的Java Web应用程序,设置了这个ContexPath: /DukesAgeService 。 现在,运行我的应用程序,浏览器显示我的Index.html页面: http://localhost:8080/DukesAgeService/ 所以一切正常。 然后,我尝试使用RESTful Web服务向导创建一个简单的restful资源。 所以,我创建了这个类: package firstcup.webservice; import javax.ws.rs.core.Context; import javax.ws.rs.core.UriInfo; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PUT; /** * REST Web Service * * @author nolanof */ @Path(“dukesAge”) public class DukesAgeResource { @Context private UriInfo context; […]

Jersey客户端API问题

我正在编写一个调用Web服务的Android客户端。 该服务使用JAX-RS / Jersey API编写。 我也试图在android端使用Jersey-Client API。 Client client = Client.create(); WebResource webResource = client.resource(server + “/api/restaurant_info/update”); MultivaluedMap formData = new MultivaluedMapImpl(); formData.add(“id”, id); formData.add(“f”, Boolean.toString(f)); formData.add(“fId”, fId); ClientResponse response = webResource.type(MediaType.APPLICATION_FORM_URLENCODED).accept(MediaType.APPLICATION_JSON).post(ClientResponse.class, formData); RestInfo restInfo = response.getEntity(RestInfo.class); return restInfo; 我已经在外部测试了Web服务,它似乎工作正常。 当我尝试从我的应用程序中调用它时,我在ClientResponse行遇到NullPointerException。 03-26 14:15:43.735: WARN/System.err(1060): java.lang.NullPointerException 03-26 14:15:43.745: WARN/System.err(1060): at javax.ws.rs.core.MediaType.valueOf(MediaType.java:119) 03-26 14:15:43.745: WARN/System.err(1060): at com.sun.jersey.api.client.PartialRequestBuilder.type(PartialRequestBuilder.java:92) […]

在RESTful Web服务中使用多个资源

在我的Web服务器应用程序中,我有一个方法,它修改xml文档,看起来类似于: @POST @Path(“somePath”) @Consumes({“application/xml”, “application/zip”}) public Response modifyXml() { //some processing } 消费的zip存档包含需要修改的xml文件和一些其他文件。 如何区分消耗的xml文件和方法内的存档以及应该使用哪种方法参数来表示此消耗的资源?

Jersey / JAX-RS资源方法输入beanvalidation

我通过DropWizard 0.7.1使用Jersey / JAX-RS来公开RESTful服务端点。 我的所有实体POJO都注释了JAX-RS和Hibernate / JSR-303 beanvalidation注释,如下所示: public class Widget { @JsonProperty(“fizz”) @NotNull @NotEmpty private String fizz; // Can’t be empty or null @JsonProperty(“buzz”) @Min(value=5L) private Long buzz; // Can’t be less than 5 // etc. } 当资源方法接收这些POJO中的一个作为输入时(在引擎盖下,DropWizard已经将HTTP实体JSON反序列化为Widget实例),我想根据Hibernate / Bean Validation注释validation它: @POST Response saveWidget(@PathParam(“widget”) Widget widget) { // Does DropWizard or Jersey have something […]

JAX-RS – 没有根节点的JSON

我有一个安静的Web服务,响应是: { “cities”: [{ “id”: “1”, “name”: “City 01”, “state”: “A1” }, { “id”: “2”, “name”: “City 02”, “state”: “A1” }] } 但我想要这个: { [{ “id”: “1”, “name”: “City 01”, “state”: “A1” }, { “id”: “2”, “name”: “City 02”, “state”: “A1” }] } 如何配置JAX-RS以仅使用JAX-RSfunction而不使用根节点生成JSON,而不是实现特定function? 我的代码需要可以在任何appserver上移植。

如何在Apache CXF jax-rs(REST)中将JSON数据作为请求主体提交

我正在使用Apache-CXF创建REST Web服务并尝试提交表单。 服务器: 这是我的方法,预计会得到json数据。 @POST @Path(“/addCustomer/”) @Consumes(MediaType.APPLICATION_JSON) //{“Customer”:{“name”:”Some Name”,”id”:6}} public Customer addCustomer(Customer customer){ logger.debug(customer); return customer; } 客户端:我使用firefox REST插件提交请求:使用REST客户端,我发布了以下json作为请求体: {“Customer”:{“name”:”Arnav Awasthi”,”id”:6}} 但我得到”415: Unsupported Media Type” 。

使用Jersey序列化Java 8流

如何使用Jersey序列化Java 8 java.util.Stream 。 我尝试编写MessageBodyWriter ,但我需要知道如何使用新的MessageBodyWriter为我的Stream编写(修饰)现有的MessageBodyWriters 。 Stream get(){ return some stream of strings } public class StreamMessageBodyWriter<Stream> implements MessageBodyWriter<Stream> { public void writeTo(…….){ //How can I get the handle to MessageBodyWriter that will write for type T, //so that I can ‘collect’ the ‘java.util.Stream’ and write it to //OutputStream } }

Beanvalidation引发ConstraintViolationException时自定义JAX-RS响应

Bean Validation是validation对象的一个​​很好的选择,但是当抛出ConstraintViolationException时如何自定义REST API的响应(使用RESTeasy)? 例如: @POST @Path(“company”) @Consumes(“application/json”) public void saveCompany(@Valid Company company) { … } 包含无效数据的请求将返回具有以下正文的HTTP 400状态代码: [PARAMETER] [saveCompany.arg0.name] [{company.name.size}] [a] 这很好,但还不够,我想在JSON文档中规范化这类错误。 我该如何自定义此行为?