Tag: jersey

我需要为JDK 1.9下载什么泽西版?

我使用的是jdk 1.9。 我想提出一个简单的ReST服务。 使用maven原型创建项目: jersey-quickstart-webapp 。 然后我继续修改了pom.xml和web.xml。 我的maven配置如下所示: 4.0.0 restWebService restWebService war 1.0-SNAPSHOT restWebService restWebService org.apache.maven.plugins maven-compiler-plugin 3.7.0 true 9 9 org.glassfish.jersey jersey-bom ${jersey.version} pom import org.springframework spring-core 5.0.0.RELEASE com.sun.jersey jersey-client 1.19.4 com.sun.jersey jersey-bundle 1.19.4 com.sun.jersey jersey-server 1.19.4 com.sun.jersey jersey-core 1.19.4 org.ow2.asm asm 6.0_BETA org.json json 20170516 com.sun.xml.bind jaxb-impl 2.3.0 javax.xml jaxb-api 2.1 javax.activation activation […]

为JERSEY Web服务编写测试用例的最佳方法是什么?

我有一个用Jersey库实现的JAX-RS Web服务,现在我想测试它。 为了做到这一点,我想通过使用模拟服务预先初始化我的测试来托管这项服务。 托管此类服务和执行测试调用的最佳方法是什么? @Path(“/srv”) public class MyService { @GET public void action(@Context UriInfo uri) { … } } @Test public void myTest() { MyService service = new MyService(); service.setSomething(…); // How do I host it? // How do I call it? }

泽西制作媒体类型冲突

我现在正在尝试Jersey,按照此链接在netbeans中设置一个Web服务。 我有我的实体类和我的REST类。 它适用于从javafx2客户端添加,编辑,删除,请求对象(在本例中为Users对象)。 但是,现在我尝试向我的webservice添加一个新方法,以进行一些简单的身份validation。 首先,我在Users.java文件中添加了一个新的命名查询(Users.login): @NamedQueries({ @NamedQuery(name = “Users.findAll”, query = “SELECT u FROM Users u”), @NamedQuery(name = “Users.login”, query = “SELECT u FROM Users u WHERE u.username = :username AND u.password = :password”), @NamedQuery(name = “Users.findById”, query = “SELECT u FROM Users u WHERE u.id = :id”), @NamedQuery(name = “Users.findByUserlevel”, query = “SELECT u […]

Jersey Client / JAX-RS和可选(非默认)@QueryParam(客户端)

我有一个RESTful API,他的文档说某个查询参数是可选的,并且不提供默认参数。 因此,我可以提供值,也可以不在GET请求中将其作为参数发送。 例: queryA是必需的 queryB是可选的 (可以在没有它的情况下发送GET ) 这应该工作: http://www.example.com/service/endpoint?queryA=foo&queryB=bar 这应该也有效: http://www.example.com/service/endpoint?queryA=foo 如何为Jersey-Proxy创建一个可以执行此操作的客户端界面? 我没有与服务器端代码进行交互,因此我使用org.glassfish.jersey.client.proxy.WebResourceFactory通过Jersey-Proxy生成客户端以与服务器API进行交互。 样本界面: import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Response; @Path(“/service”) @Produces(“application/json”) public interface ServiceInterface { @Path(“/endpoint”) @GET public Response getEndpoint( @QueryParam(“queryA”) String first, @QueryParam(“queryB”) String second); } 我知道我可以制作另一种方法: @Path(“/endpoint”) @GET public Response getEndpoint( @QueryParam(“queryA”) String first); 但是当你有多个可选字段时会发生什么? 我不想让它们发生任何可能的变异!

html服务器grizzly + jersey(.jtml来自.jar档案)

我想从.jar存档而不是从文件夹中提供我的.html网站。 目前我使用灰熊(带衬衫)并提供静态页面,如: HttpServer webServer; …. …. webServer.getServerConfiguration().addHttpHandler(new StaticHttpHandler(“varwww”), “/app”); webServer.start(); 有没有办法让网络服务器不从文件夹“varwww”中检索.html并从myhtml.jar获取它?

Java Jersey:接收表单参数作为字节数组

是否可以使用Jersey接收form参数作为字节数组? 我尝试了以下方法: @Path(“/someMethod”) @POST @Produces(MediaType.TEXT_HTML) @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public String someMethod(@FormParam(“someParam”) byte[] someParam) { return “”; } 但得到了这个错误: SEVERE: The following errors and warnings have been detected with resource and/or provider classes: SEVERE: Missing dependency for method public java.lang.String SomeClass.someMethod(byte[]) at parameter at index 0 SEVERE: Missing dependency for method public java.lang.String SomeClass.someMethod(byte[]) at parameter at index […]

泽西岛,如何POST一个JSON对象列表?

我正在使用Jersey 1.11在Java中构建RESTful Web服务,并且在实现消耗JSON-ised实体列表的方法时遇到问题。 单实例方法工作正常。 我得到的错误是: Status 400 – Bad Request. The request sent by the client was syntactically incorrect. 我的方法签名如下所示: @POST @Path(“/some-path/{someParam}”) @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public String createBatch(List myEnts, @PathParam(“someParam”) String someParam) { … } 我在请求中发送的JSON是MyEntity JSON对象的数组: [{“field1” : value1, “field2” : value2}, {“field1” : value3, “field2” : value4}, …] 之前已经提出了类似的问题,一个直接的建议是将消费的媒体类型更改为文本并手动反序列化JSON,但我更喜欢更清晰的解决方案。 我发送的JSON在这种情况下是否有效,或者我是否需要顶级{}即包装器实体? 这似乎有点不自然。 谢谢, /大卫

使用Jersey客户端的PATCH请求

我想执行我们的服务器支持的PATCH请求,以便使用Jersey客户端进行测试。 我的代码如下,但我得到com.sun.jersey.api.client.ClientHandlerException: java.net.ProtocolException: HTTP method PATCH doesn’t support outputexception。 有人能让我知道下面的代码有什么问题吗? String complete_url = “http://localhost:8080/api/request”; String request = “[{\”op\”:\”add\”, \”path\”:\”/name\”, \”value\”:\”Hello\”}]”; DefaultClientConfig config = new DefaultClientConfig(); config.getProperties().put(URLConnectionClientHandler.PROPERTY_HTTP_URL_CONNECTION_SET_METHOD_WORKAROUND, true); Client client = Client.create(config); WebResource resource = client.resource(complete_url); ClientResponse response = resource.header(“Authorization”, “Basic xyzabCDef”) .type(new MediaType(“application”, “json-patch+json”)) .method(“PATCH”, ClientResponse.class, request); 这是完整的例外, com.sun.jersey.api.client.ClientHandlerException: java.net.ProtocolException: HTTP method PATCH doesn’t support […]

自定义响应头泽西/ Java

我正在努力实现以下目标。 从Request中读取自定义标头及其值: name: username 现在,作为响应,我想在HTTP响应中返回相同的头name:value对。 我正在使用Jersey 2.0实现的JAX-RS webservice。 当我发送请求URL Http://localhost/test/ ,请求头也被传递(暂时,虽然Firefox插件 – 硬编码)。 收到该URL的请求后,将调用以下方法: @GET @Produces(MediaType.APPLICATION_JSON) public UserClass getValues(@Context HttpHeaders header) { MultivaluedMap headerParams = header.getRequestHeaders(); String userKey = “name”; headerParams.get(userKey); // … return user_object; } 我怎么能实现这个目标? 任何指针都会很棒!

Jersey / JAX-RS:将地图作为XML / JSON返回

如何使用Jersey / JAX-RS框架将Map作为XML / JSON文档返回并不是那么明显。 它已经支持List ,但是当涉及到Map ,没有MessageBodyWriter 。 即使我将Ma嵌入到包装类中,XML模式中也没有map类型。 关于如何将Map编组到Jersey中的XML / JSON文档的任何实用建议?