Java 使用Jetty 9从HttpClient获取响应时出错
我想使用Jetty和HttpClient类从外部服务器获取内容。现在,我想将获得的响应复制为Java 使用Jetty 9从HttpClient获取响应时出错,java,servlets,jetty,jetty-httpclient,Java,Servlets,Jetty,Jetty Httpclient,我想使用Jetty和HttpClient类从外部服务器获取内容。现在,我想将获得的响应复制为HttpServletResponse,并返回到客户端(浏览器)。我试过一些事,但没有成功。我想我还没有和班里人相处好 这是我的密码: public void getContentsTo(String uri,HttpServletRequest request,final HttpServletResponse response){ HttpClient httpClient=new H
HttpServletResponse
,并返回到客户端(浏览器)。我试过一些事,但没有成功。我想我还没有和班里人相处好
这是我的密码:
public void getContentsTo(String uri,HttpServletRequest request,final HttpServletResponse response){
HttpClient httpClient=new HttpClient();
httpClient.newRequest(uri).send( new org.eclipse.jetty.client.api.Response.CompleteListener() {
@Override
public void onComplete(Result result) {
response=(HttpServletResponse)result.getResponse();
};
});
错误在于将响应分配为:
无法指定最终的局部变量响应,因为它是
在封闭类型中定义
如果我不对参数使用final
,也会出现如下错误:
无法在内部类中引用非最终变量响应
用不同的方法定义
原因是什么?您在参数中有一个final
(!)变量,您试图在代码中更改它。这可能是错误的原因
为什么是最终版本
?请删除此标识符,然后重试
好的,我会尽量这样做
如我所见,如果在代码中不使用response
参数,为什么不在内部类中将其声明为实例变量?result.getResponse()响应是一个org.eclipse.jetty.client.HttpResponse,它的沿袭中没有HttpServletResponse。如果我遵循您试图执行的操作,您将需要复制您得到的结果中的信息,并将其放入您的HttpServletResponse对象。代码中的final是由我的第一个错误建议的。错误为:“不能引用在不同方法中定义的内部类中的非最终变量响应”Ok!错误不在类型转换上,我认为错误在于从innerclass设置outerclass变量。当然,但这是最终的错误,您不能像显示的那样替换对象。因此,它们是完全不同的对象类型。