Questions tagged «jax-rs»

JAX-RS:RESTful Web服务的Java API。它是一个API,在根据REST体系结构样式创建Web服务时提供支持。

3
REST API设计-通过具有不同参数但URL模式相同的REST获取资源
我有一个与REST网址设计有关的问题。我在这里找到了一些相关的文章:相同资源的不同RESTful表示形式以及此处:不同字段的RESTful到GET资源的url,但是关于最佳实践是什么以及为什么还不清楚。这是一个例子。 我有代表“用户”资源的REST网址。我可以使用ID或电子邮件地址来获取用户,但两者的URL表示形式均相同。通过浏览许多博客和书籍,我发现人们一直在以许多不同的方式来进行此操作。例如 在书中以及stackoverflow上的某处阅读此练习(我似乎再也找不到链接了) GET /users/id={id} GET /users/email={email} 在许多博客上阅读这种做法 GET /users/{id} GET /users/email/{email} 查询参数通常用于过滤由url表示的资源的结果,但是我也看到了这种做法 GET /users?id={id} GET /users?email={email} 我的问题是,在所有这些实践中,哪种方法最适合使用api的开发人员,为什么?我相信,关于REST网址设计和命名约定,没有固定的规则,但是我只是想知道我应该采取哪种方式来帮助开发人员更好地理解API。 所有帮助表示赞赏!


2
为什么使用JAX-RS / Jersey?
抱歉,这个问题听起来很愚蠢,但是在使用Jersey开发了我的一些RESTful服务之后,我问了自己一个问题-如果REST只是一个体系结构,而不是像SOAP这样的协议,为什么我们需要一个像JAX-RS这样的规范? 我实际上在Google上搜索了诸如“ servlet和HTTP上的RESTful服务之间的区别”之类的问题,并总结了社区的答案,我得到了: RESTful服务开发(在Jersey上)是一种体系结构,其固有地使用servlet。 诸如Jersey之类的与JAX-RS兼容的工具可以轻松地将XML / JSON数据编组/拆组,从而为开发人员提供了帮助。 REST帮助我们以比普通servlet高效得多的方式使用GET / POST / PUT / DELETE。 根据这些答案,我想如果我编写一个使用JAXB(用于处理自动序列化)的servlet,并且在我的servlet代码中有效地使用GET / POST / PUT / DELETE,那么我就不会使用Jersey等工具,并且因此是JAX-RS。 我知道通过此声明我非常错误,请纠正我。 PS:当我不得不用PHP开发一些RESTful服务时,这种怀疑实际上就出现了。在研究了一些RESTful PHP代码之后,我意识到它们只是相同的旧PHP脚本,带有一些用于处理XML / JSON的辅助方法。
84 rest  jersey  jax-rs 

10
测试JAX-RS Web服务?
我目前正在寻找为基于JAX-RS(用于RESTful Web服务的Java API)的Web服务创建自动化测试的方法。 我基本上需要一种方法来向其发送某些输入并验证我是否获得了预期的响应。我更愿意通过JUnit做到这一点,但是我不确定如何实现。 您使用什么方法来测试您的Web服务? 更新:正如entzik所指出的那样,将Web服务与业务逻辑分离可以让我对业务逻辑进行单元测试。但是,我也想测试正确的HTTP状态代码等。

6
如何仅使用注释(不使用web.xml)设置JAX-RS Application?
是否可以仅使用注释来设置JAX-RS应用程序?(使用Servlet 3.0和JAX-RS Jersey 1.1.0) 我尝试了,没有运气。web.xml似乎需要使用一些。 配置A(正常运行,但具有web.xml配置) web.xml ... <servlet> <servlet-name>org.foo.rest.MyApplication</servlet-name> </servlet> <servlet-mapping> <servlet-name>org.foo.rest.MyApplication</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> ... 爪哇 @ApplicationPath("/") public class MyApplication extends Application { ... } 配置B(无效,引发异常) @ApplicationPath("/") @WebServlet("/*") // <-- public class MyApplication extends Application { ... } 后者似乎坚持认为Application将是Servlet的子类(该异常不会引起猜测) java.lang.ClassCastException: org.foo.rest.MyApplication cannot be cast to javax.servlet.Servlet 问题 为什么web.xml定义有效,但注释却无效?有什么不同? 有没有办法让它工作,例如有没有web.xml的JAX-RS应用程序?

8
JAX-RS发布多个对象
我有办法 @POST @Path("test") @Consumes(MediaType.APPLICATION_JSON) public void test(ObjectOne objectOne, ObjectTwo objectTwo) 现在我知道我可以将一个对象以json格式发布,只需将其放入正文即可。但是可以做多个对象吗?如果是这样,怎么办?
75 java  rest  jax-rs 

4
如何在Jersey,Apache Wink和JBoss RESTEasy之间进行选择?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 改善这个问题 我刚刚听说过Apache Wink,我想知道它与Jersey或JBoss RESTEasy相比有什么区别。在其他两个不能做的事情中可以做什么? 我们一直在为一些内部项目使用Jersey,主要是因为它很简单,但是我真的无法弄清楚是什么使其他两个更好,因此我考虑转换。有没有人有任何用例适合这些填充?

6
从发布请求中读取JAX-RS客户端中的响应正文
在移动应用程序和Web服务之间具有某种代理,发出发布请求时的响应使我们感到困惑。我们收到状态为200的回复:确定。但是我们找不到/提取JSON响应主体。 Client client = ClientBuilder.newClient(); WebTarget webTarget = client.target(WEBSERVICE_BASE_LOCATION + "mobileDevices?operatorCode=KPNSCP"); String jsonString = "{\"osVersion\":\"4.1\",\"apiLevel\":16,\"devicePlatform\":\"ANDROID\"}"; Builder builder = webTarget.request(); Response response = builder.post(Entity.json(jsonString)); 我们正在使用JAX-RS。有人可以提供一些提示来String从服务器响应中提取JSON正文()吗?

4
JAX-RS中必需的@QueryParam(以及缺少它们时的操作)
我使用RESTEasy JAX-RS实现将Web服务组件部署到JBoss Application Server 7。 在JAX-RS中是否可以使用注释来声明必需的,必需的@QueryParam参数?而且,如果没有,处理缺少此类参数的情况的“标准”方法是什么? 当使用所有必需参数正确调用时,我的Web服务(资源)方法返回JSON字符串化的结果,但是我不确定向调用方指示缺少必需参数的最佳方法是什么。
75 java  jax-rs 

3
如何将JSON对象发布到JAX-RS服务
我正在使用JAX-RS的Jersey实现。我想将JSON对象发布到该服务,但收到错误代码415不支持的媒体类型。我想念什么? 这是我的代码: @Path("/orders") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public class OrderResource { private static Map<Integer, Order> orders = new HashMap<Integer, Order>(); @POST public void createOrder(Order order) { orders.put(order.id, order); } @GET @Path("/{id}") public Order getOrder(@PathParam("id") int id) { Order order = orders.get(id); if (order == null) { order = new Order(0, "Buy", "Unknown", …
73 json  jersey  jax-rs 

7
将EJB注入JAX-RS(RESTful服务)
我试图通过注释将无状态EJB注入到JAX-RS Web服务中。不幸的是,EJB是正义的null,NullPointerException当我尝试使用它时我得到了。 @Path("book") public class BookResource { @EJB private BookEJB bookEJB; public BookResource() { } @GET @Produces("application/xml") @Path("/{bookId}") public Book getBookById(@PathParam("bookId") Integer id) { return bookEJB.findById(id); } } 我究竟做错了什么? 以下是有关我的机器的一些信息: 玻璃鱼3.1 Netbeans 6.9 RC 2 Java EE 6 你们能举个可行的例子吗?
72 java  rest  jakarta-ee  ejb  jax-rs 

1
泽西岛2中的ResourceConfig类到底是什么?
我看过很多Jersey教程,它们都以类似 @ApplicationPath("services") public class JerseyApplication extends ResourceConfig { public JerseyApplication() { packages("com.abc.jersey.services"); } } 没有解释什么是确切的ResourceConfig类。那么在哪里可以找到其文档,用法等?谷歌搜索“ jersey resourceconfig”不会产生任何官方文档。 我对此类及其用法的一些疑问是: 我可以在的子类中做什么ResourceConfig? 我是否需要注册ResourceConfig某个地方的子类以便可以找到它,或者它会被Jersey自动检测到? 如果自动检测到子类,如果我有多个子类,会发生什么 ResourceConfig? 目的ResourceConfig与web.xml文件相同吗?如果是这样,如果我两个都在我的项目中会怎样?他们中的一个优先于另一个吗?

5
如何使用带有Jersey的JAX-RS处理CORS
我正在开发一个Java脚本客户端应用程序,在服务器端我需要处理CORS,以及我用JERSEY用JAX-RS编写的所有服务。我的代码: @CrossOriginResourceSharing(allowAllOrigins = true) @GET @Path("/readOthersCalendar") @Produces("application/json") public Response readOthersCalendar(String dataJson) throws Exception { //my code. Edited by gimbal2 to fix formatting return Response.status(status).entity(jsonResponse).header("Access-Control-Allow-Origin", "*").build(); } 到目前为止,我收到错误消息请求的资源上没有“ Access-Control-Allow-Origin”标头。因此,不允许访问源' http:// localhost:8080 '。” 请协助我。 谢谢与问候普涅斯
72 java  rest  jersey  jax-rs  cors 

5
如何为JAX-RS使用@PATCH批注?
JAX-RS带有HTTP动词的注释,例如GET(@GET)和POST(@POST),但是没有@PATCH注释。如何为PATCHHTTP动词添加注释? 类似于以下内容: @PATCH public Response someCode() { // Code to handle the request }
70 java  jax-rs 

9
如何在JAX-RS Web服务上启用跨域请求?
我开发了一套宁静的Web服务。由于出现错误,我无法从远程客户端调用任何这些方法 No 'Access-Control-Allow-Origin' header is present on the requested resource. 该服务可以在localhost上完美运行。在服务器端是否有任何更改或配置要做以解决问题。即启用跨域请求。 我正在使用WildFly 8,JavaEE 7

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.