- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
您好,我有一个用于上传文件的 Jersey 客户端。我尝试在本地使用它,一切正常。但是在生产环境中我必须设置代理。我浏览了几页但无法获得确切的解决方案。有人可以帮我解决这个问题吗?
这是我的客户端代码:
File file = new File("e:\\test.zip");
FormDataMultiPart part = new FormDataMultiPart();
part.bodyPart(new FileDataBodyPart("file", file, MediaType.APPLICATION_OCTET_STREAM_TYPE));
WebResource resource = null;
if (proxy.equals("yes")) {
// How do i configure client in this case?
} else {
// this uses system proxy i guess
resource = Client.create().resource(url);
}
String response = (String) resource.type(MediaType.MULTIPART_FORM_DATA_TYPE).post(String.class, part);
System.out.println(response);
最佳答案
如果您想避免在遗留项目中使用更多库并且不需要代理身份验证,则有一种更简单的方法:
首先你需要一个实现HttpURLConnectionFactory
的类:
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;
import com.sun.jersey.client.urlconnection.HttpURLConnectionFactory;
public class ConnectionFactory implements HttpURLConnectionFactory {
Proxy proxy;
private void initializeProxy() {
proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("myproxy.com", 3128));
}
public HttpURLConnection getHttpURLConnection(URL url) throws IOException {
initializeProxy();
return (HttpURLConnection) url.openConnection(proxy);
}
}
其次是实例化一个com.sun.jersey.client.urlconnection.URLConnectionHandler
URLConnectionClientHandler ch = new URLConnectionClientHandler(new ConnectionFactory());
第三种是使用 Client
构造函数代替 Client.create
:
Client client = new Client(ch);
当然你可以在ConnectionFactory
中自定义Proxy的初始化。
关于java - 泽西客户端 + 设置代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10415607/
我尝试使用 Jersey/Spring/Hibernate 部署应用程序,每次我尝试部署它时都会抛出此异常: SEVERE: Context initialization failed jav
这个问题已经有答案了: Java get ResultSet from SQL Array is Failing (1 个回答) 已关闭 8 年前。 我当前在尝试运行此 Sql 命令时遇到此异常:SE
我想使用 Jetty + Jersey 生成 JSON。我的 POM.XML 类似于这篇文章:How do I update example to work with latest versions
我面对的是 Jersey 2.7。这是我的服务: package edu.srv.rest; import javax.ws.rs.GET; import javax.ws.rs.POST; impo
我很难理解 Jersey 的注入(inject)机制。 JAX-RS 规范 (http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-
我使用 jersey 实现了 REST 服务。通信层通过 ssl 进行保护。在客户端,我收到了这样的要求:在调用服务并验证服务器端的请求之前,我应该签署 xml。 http://docs.oracle
我用Tomcat做了一个Jersey maven项目,现在我想将它连接到Mysql数据库。我进入数据源浏览器 -> 数据库连接 -> 新驱动程序定义,但是当我选择 MySQL JDBC Driver
我正在从事一个企业项目,该项目有一个 EJB 模块和一个在 GlassFish v3.1、Weld v1.1 和 Jersey 上运行的 Web 项目。在 EJB 中,我定义了一个实体类 Manufa
我花了太多时间(我会说超过 10 个小时)试图弄清楚如何获取基本的 json 调用(来自 angularjs)以在我的 Jersey 2.4 上打开和处理。我已经在谷歌上尝试了所有可能的结果,但仍然得
最近我开始使用 SecurityEntityFilteringFeature。放置在 Jersey 环境中的代码下方。 environment.jersey().register(SecurityEn
我有一个包含多个字段和文件上传的 HTML 表单。 在 Java 方面,我收到了如下表单,并且有效: @Component("org.phenotips.metabolites.FileUploade
我想为资源的 REST 接口(interface)提供这样的方法 @POST @Consumes(MediaType.APPLICATION_JSON) public void add(@Auth U
我是 Restful Web 服务的新手。我想通过 Jersey 客户端访问服务器。但我收到了 500 错误。我想做的是通过客户端提交表名称并以 JSON 形式检索表内容。谁能找到这里的错误吗? 这是
我在部署 Web 应用程序时遇到以下异常。使用weblogic 12c (JerseyWebTarget.java:71) at org.glassfish.jersey.cl
完整存档: google drive (Tomcat 7.0) 我重复了 Jersey Restful exception 中的代码 本地测试网址 - http://localhost:8080/te
我正在使用 jersey 1.8、tomcat 7 和 spring 4 构建 jersey Rest api 此服务将具有基本 HTTP 身份验证,并将提供任何来源的信息(它将由来自不同域的客户使用
我正在从现在只读的谷歌群组 App Engine for Java 中重新提出一个 Unresolved 问题,因为我有完全相同的问题。 ( original ) 我使用 jersey、jaxb 和
检测问号 我需要实现一个协议(protocol),用户可以在该协议(protocol)中提供附加到 URL 的问号,以便检索有关所提供资源的附加信息。我知道 URL 资源后面的问号表示查询参数。不幸的
我正在用 Jersey 编写一个 Restful Web 服务,这是示例代码: @GET @Produce(MediaType.APPLICATION_JSON) public String find
我有客户像这样传递 ID:/v1/path?id=1,2,3 我拥有的和想要的 我有一个 Dropwizard/Jersey 的资源类。我想在资源的 GET 方法中将查询参数 id=1,2,3 显示为
我是一名优秀的程序员,十分优秀!