问题标签 [jersey-client]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 泽西岛:使客户端抛出相同的服务器异常
我了解基于 Jersey 的 Web 服务能够将服务方法引发的异常与所需的 HTTP 返回代码相关联(此处)。现在,是否有机会让客户端生成与服务方法生成的完全相同的异常?我的意思是,如果服务器端抛出 MySpecificException,有没有办法在 HTTP 响应中存储这些信息(即异常类的 FQN)(自动地,我不想转向显式构建响应的方法,我希望他们返回 POJO 或 void),以便客户端可以使用它重新抛出相同的异常?
java - jersey 客户端可以使用 JSON 将 JAXB 对象发布到服务器吗?
我找到了很多关于如何设置球衣服务器以便它可以生成和使用 JAXB 绑定对象的示例,但是我很难找到如何让客户端发布相同的 JAXB 绑定对象的示例。 这个例子展示了如何使用 XML 来做这件事。我正在寻找一个展示如何使用 JSON 来做到这一点的工具。
我什至不确定这是否可行。post方法上的 javadoc不明确。
我的帖子是这样的:
当我尝试这个时,我的服务器会收到请求,但字段@FormParam
总是作为 null 发送过来的。这是我的服务器端方法的签名:
我想知道的其他事情是我是否应该使用instanceWithXmlRootElementAnnotation
. 如果这是一个传统的 Web 服务,我会使用 JAXB生成一个对象供客户端使用并通过生成的类发送。但是根据我从链接到的示例中收集到的信息,这个人发送的是源代码,而不是生成的类。
java - 如何抑制 Jersey 自动抛出的 Jersey 异常?
我在 JAVA 中将 Jersey 1.14 用于 REST。如果资源的 POST 正文中有任何错误,Jersey 会抛出异常,向客户端提及我的内部类。当错误从我的应用程序传递时,我继续希望给他们错误,但抑制 Jersey 抛出的错误(对于甚至没有到达我的应用程序的请求,因为 Jersey 识别异常并抛出它)。我搜索了任何标志来实现这一点,但找不到任何东西。有没有办法做到这一点?
编辑:改写问题:静音/抑制球衣中无效输入的错误堆栈跟踪
更新:我尝试使用 ExceptionMapper,捕获 java.lang.Exception。它会像缺少 Content-Type 一样捕获异常,但在对象转换出错时无法捕获异常。
java - Jersey 客户端:如何发布嵌套的 JSON 数据?
我正在使用 Jersey (v 1.17.1) 客户端与不受我控制的远程服务器通信(因此我看不到传入的请求)。
我喜欢使用 JSON 数据发出 POST 请求,其结构类似于此示例:
那是我的代码:
我尝试了几种方法(比如嵌套另一个 Form 对象),但我总是得到相同的结果:服务器返回 400 - 错误请求(“客户端发送的请求在语法上不正确(错误请求)。”)我认为是因为强制参数项未正确发送。
有人知道我如何像描述的那样嵌套 JSON 数据吗?我认为这是一种常见的情况,但我在网上没有找到任何例子。
android - 发布表单参数时,泽西客户端无法在 android 上工作
这实际上不是一个问题,而是通过几个帖子在该站点上报告的问题的解决方案。自从我解决了这个问题并找到了解决方案,我认为其他人可以节省时间。下面的代码从 Eclipse 运行时工作正常,但失败并出现错误“com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java type....”
基本上,这个想法是让 Jersey 通过服务查找器模式知道可用的消息读取器/写入器。示例如下所示
公共类 AndroidServiceIteratorProvider 扩展 ServiceIteratorProvider {
}
注意 javax_ws_rs_ext_MessageBodyReader 和 javax_ws_rs_ext_MessageBodyWriter 中声明的字符串参数。您需要将相应的读取器/写入器添加到字符串数组,然后通过 API 调用将此提供程序与 Jersey 挂钩,如下所示
可以在此处找到消息阅读器和作者的列表
java - 为什么即使我添加了 try..catch,程序仍然抛出 java.net.ConnectException?
当出现连接错误时,我正在尝试添加控件。我的目标是通过捕获它来阻止程序抛出异常。
但它在控制台中打印:
org.glassfish.jersey.client.ClientRequest writeEntity Grave:提交请求输出流时出错。java.net.ConnectException:连接被拒绝:在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java: 339) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 在 java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 在 java. net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 在 sun.net.sun.net.NetworkClient.doConnect(NetworkClient.java:175) 在 java.net.Socket.connect(Socket.java:579) 在 sun.net。
如果我添加捕获部分:e.printStackTrace();
控制台还打印:
原因:java.net.ConnectException:连接被拒绝:在 java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl) 处连接 java.net.DualStackPlainSocketImpl.connect0(Native Method) .java:339) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 在 java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 在 java.net.Socket.connect(Socket.java:579) 在 sun.net.NetworkClient.doConnect(NetworkClient.java:175) 在 sun.net。 www.http.HttpClient.openServer(HttpClient.java:432) 在 sun.net.www.http.HttpClient。openServer(HttpClient.java:527) 在 sun.net.www.http.HttpClient.(HttpClient.java:211) 在 sun.net.www.http.HttpClient.New(HttpClient.java:308) 在 sun.net。 www.http.HttpClient.New(HttpClient.java:326) 在 sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:996) 在 sun.net.www.protocol.http.HttpURLConnection.plainConnect( HttpURLConnection.java:932) 在 sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:850) 在 sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1091) 在 org .glassfish.jersey.client.HttpUrlConnector$3.getOutputStream(HttpUrlConnector.java:287) 在 org.glassfish.jersey.message.internal.CommittingOutputStream.commitStream(CommittingOutputStream.java:198) 在 org.glassfish.jersey.message.internal。在 org.codehaus.jackson.impl.Utf8Generator._flushBuffer(Utf8Generator.java:1754) 的 org.glassfish.jersey.message.internal.CommittingOutputStream.write(CommittingOutputStream.java:226) 的 CommittingOutputStream.commitStream(CommittingOutputStream.java:192)在 org.codehaus.jackson.impl.Utf8Generator.flush(Utf8Generator.java:1088) 在 org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:1615) 在 org.codehaus.jackson.jaxrs.JacksonJsonProvider.writeTo (JacksonJsonProvider.java:559) 在 org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:194) 在 org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:139 ) 在 org.glassfish.jersey.message.internal.MessageBodyFactory。writeTo(MessageBodyFactory.java:1005) at org.glassfish.jersey.client.ClientRequest.writeEntity(ClientRequest.java:430) at org.glassfish.jersey.client.HttpUrlConnector._apply(HttpUrlConnector.java:290) at org.glassfish .jersey.client.HttpUrlConnector.apply(HttpUrlConnector.java:203) ... 还有 78 个
抱歉,如果我打印了太多堆栈跟踪...
我想知道如果我不打印堆栈跟踪,我怎样才能让异常消失?谢谢 :)
android - 无法从 Android 上的 Jersey 客户端响应读取 cookie
我有一个 Web 应用程序进行身份验证,然后检查请求中的 cookie 以允许来自同一客户端的后续调用。我写了一段代码,当我从 Eclipse 运行它时工作得很好,但从 android 模拟器运行时失败。这是我所做的
为 URI 创建 web 资源并将过滤器绑定到它以将 cookie 附加到请求的类
然后是触发 web 服务调用的示例代码
从 Eclipse 运行时,此代码运行良好。但是当在 android 模拟器中运行时,它无法从客户端响应中读取 cookie
我得到以下异常
有没有人尝试过在 android 上使用 Jersey 客户端并看到这个问题?
jersey-client - 警告:Jersey2.x 客户端上的 JAXP 功能 XMLConstants.FEATURE_SECURE_PROCESSING
2013 年 9 月 22 日下午 5:15:00 org.glassfish.jersey.message.internal.SecureSaxParserFactory
我可以用
config.getFeatures().put(FeaturesAndProperties.FEATURE_DISABLE_XML_SECURITY, true);
避免在Jersey1.x上出现此警告消息,但是当我迁移到Jersey2.x时,没有此功能设置。我怎么能在 Jersey2.x 上再次避免它?谢谢!
jersey-client - 如何为 Jersey2 客户端添加 http 代理
在 Jersey1.x 上为客户端设置代理很容易:
但是如何为 Jersey2.x 客户端添加一个 http 代理呢?我检查了源代码,但没有找到实现:
org.glassfish.jersey.client.HttpUrlConnector
谢谢!
java - Java:在不同的线程中捕获异常
我正在开发一个也使用 REST-API 的 Swing 应用程序。我正在使用泽西岛来实现这一点。
我希望用户在 TextField 中输入一个 URL,如果 URL 格式不正确或有什么问题,我想给他一些反馈。我使用 URI 作为存储 URL 的基础,并且能够捕获由此出现的任何问题并为用户提供一些信息。
现在,当 URL 具有正确的格式但根本无法解析时,我会收到以下异常:
所以我的问题是:当我没有引发此异常的对象时,如何“捕获”此异常?
提前致谢 !