Tag: jersey

配置代理到Jersey客户端

我想为我的Jersey客户端配置代理服务器。 我不想将代理配置到整个应用程序(使用JVM参数,如http.proxyHost),而不是使用Apache客户端。 我在这里读到有一个选项可以通过HttpUrlConnectionFactory提供HttpUrlConnection,但我找不到任何代码示例。 有谁知道我该怎么做? 谢谢!

如何使用Java REST服务和数据流下载文件

我有3台机器: 文件所在的服务器 正在运行REST服务的服务器(Jersey) 客户端(浏览器)可访问第二台服务器但无法访问第一台服务器 如何直接(不保存第二台服务器上的文件)将文件从第一台服务器下载到客户机器? 从第二台服务器我可以得到一个ByteArrayOutputStream来从第一台服务器获取文件,我可以使用REST服务将此流进一步传递给客户端吗? 它会这样工作吗? 基本上我想要实现的是允许客户端使用第二台服务器上的REST服务从第一台服务器下载文件(因为没有从客户端到第一台服务器的直接访问)只使用数据流(所以没有数据接触文件第二服务器系统)。 我现在尝试使用EasyStream库: final FTDClient client = FTDClient.getInstance(); try { final InputStreamFromOutputStream isOs = new InputStreamFromOutputStream() { @Override public String produce(final OutputStream dataSink) throws Exception { return client.downloadFile2(location, Integer.valueOf(spaceId), URLDecoder.decode(filePath, “UTF-8”), dataSink); } }; try { String fileName = filePath.substring(filePath.lastIndexOf(“/”) + 1); StreamingOutput output = new StreamingOutput() { @Override […]

响应中的JAX / Jersey自定义错误代码

在Jersey中,我们如何“替换”与已知状态代码关联的状态字符串? 例如 return Response.status(401).build(); 生成包含以下内容的HTTP响应: HTTP/1.1 401 Unauthorized 我(不是我,但客户端应用程序)希望将响应视为: HTTP/1.1 401 Authorization Required 我尝试了以下方法,但徒劳无功: 1)这只是在HTTP响应的主体中添加了String return Response.status(401).entity(“Authorization Required”).build(); 2)同样的结果: ResponseBuilder rb = Response.status(401); rb = rb.tag(“Authorization Required”); return rb.build(); 感谢您的帮助! -spd

无法在javascript中向java Web服务(泽西岛)发出CORS POST请求?

我正在使用Jersey.I创建资源,在Java Web服务中实现跨资源原始共享,如下所示: @POST @Path(“/getSubjects”) @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public Response getSubjects(TokenCheck tc) throws IOException, ServletException{ String token = tc.getToken(); String result = “”; if(!token.equals(“”) && !token.equals(null)){ context.getRequestDispatcher(“/GetSubjectsWs?token=”+token).include(request, response); String subs = request.getAttribute(“subjects”).toString(); result = “{\”subjects\”:\””+subs+”\”}”; }else { result = “{\”subjects\”:\”[‘Invalid Token login again’]\”}”; } JSONObject j = null; try { j = new JSONObject(result); } catch (JSONException […]

使用oAuth 2.0保护基于Jersey的REST服务

我使用Jersey Library在java / netbeans中创建了RESTful服务。 现在我想使用oAuth 2.0来保护这项服务。 是否有任何库或任何教程来实现这一目标? 我在谷歌找不到任何有用的东西。

ServiceLocator如何在HK2中自动找到@Service和@Contact?

根据HK2 @Service javadoc 放置在要自动添加到hk2 ServiceLocator的类上的注释。 我不知道如何使ServiceLocator自动查找带注释的类。 TestService的 @Contract public interface TestService { } TestServiceImpl @Service public class TestServiceImpl implements TestService { } 主要 public static void main(String[] args) { ServiceLocator locator = ServiceLocatorUtilities.createAndPopulateServiceLocator(); TestService service = locator.getService(TestServiceImpl.class); System.out.println(service); // null } 结果始终为null 。 我必须添加Descriptor以便ServiceLocator可以找到它。 public static void main(String[] args) { ServiceLocator locator = ServiceLocatorUtilities.createAndPopulateServiceLocator(); DynamicConfigurationService […]

curl POST没有传递URL参数

这是我的java代码: @POST @Path(“/sumPost”) @Produces(MediaType.TEXT_PLAIN) public String sumPost(@QueryParam(value = “x”) int x, @QueryParam(value = “y”) int y) { System.out.println(“x = ” + x); System.out.println(“y = ” + y); return (x + y) + “\n”; } 我称之为: curl -XPOST “http://localhost:8080/CurlServer/curl/curltutorial/sumPost” -d ‘x:5&y:3’ 问题是System.out.println调用保持零零,似乎我没有正确传递x和y。 更新 在答案之后,我将我的请求更改为: curl -d ‘{“x” : 4, “y”:3}’ “http://localhost:8080/CurlServer/curl/curltutorial/sumPost” -H “Content-Type:application/json” -H “Accept:text/plain” –include […]

Http 415 on file上传使用jersey

我的RESTful文件上传代码: @Path(“/upload”) @POST @Consumes(“multipart/form-data”) public String post( @FormDataParam(“part”) String s, @FormDataParam(“part”) FormDataContentDisposition d) { return s + “:” + d.getFileName(); } 当我尝试使用curl curl -X POST –form part=@file.txt url上传文件时 我收到HTTP 415不支持的媒体类型错误。 哪里不对 ?

在泽西岛获得rest服务

我对Web服务非常陌生。 我已经使用Jersey 2与Spring集成了一些REST服务。 现在我需要使用用户名/密码进行身份validation来保护这些rest服务。 我被告知不要使用Spring安全性。 我不知道该怎么做。 我在网上搜索,但各种链接显示各种实现,我无法决定如何继续它。 我知道这是一个模糊的问题但请在这方面提供帮助。

如何更新示例以使用最新版本Jetty(9.1.0.RC2)和Jersey(2.7)?

我一直试图效仿这个例子 (第一次点击google for jersey + jetty)但运气不好。 根据下面评论者的建议,我决定更新示例以使用最新版本的Jetty(9.1.0.RC2)和Jersey(2.7)。 这是更新的pom,具有更新的依赖项: 4.0.0 HelloJerseyLatest HelloJerseyLatest 0.0.1-SNAPSHOT src maven-compiler-plugin 3.1 1.7 1.7 org.glassfish.jersey.containers jersey-container-servlet-core 2.7 org.eclipse.jetty jetty-server 9.1.0.RC2 org.eclipse.jetty jetty-servlet 9.1.0.RC2 首先要注意的是Jersey包已经从com.sun.jersey.spi.*更改为org.glassfish.jersey.* 。 因此,主要方法也需要更改: package example.server; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; //import com.sun.jersey.spi.container.servlet.ServletContainer; import org.glassfish.jersey.servlet.ServletContainer; public class MinimalServerRest { public static void main(String[] args) throws Exception { ServletHolder sh […]