Java HttpURLConnection在Jboss 4.0.3中代理后获取500响应代码

Java HttpURLConnection在Jboss 4.0.3中代理后获取500响应代码,java,servlets,proxy,jboss-4.0.x,Java,Servlets,Proxy,Jboss 4.0.x,我已经实现了一个servlet,并将其部署在JBoss4.0.3的war文件夹中,以连接到外部网站。我的机器在代理之后,我也有有效的代理身份验证凭据 当我尝试连接而不在程序中提供任何代理设置时,我得到: Servlet SearchRequestHandler的Servlet.service()引发异常 java.io.IOException:服务器返回了URL: 如果我仅使用以下命令提供代理服务器和代理端口: System.setProperty("java.net.useSystemPro

我已经实现了一个servlet,并将其部署在JBoss4.0.3的war文件夹中,以连接到外部网站。我的机器在代理之后,我也有有效的代理身份验证凭据

当我尝试连接而不在程序中提供任何代理设置时,我得到:

Servlet SearchRequestHandler的Servlet.service()引发异常 java.io.IOException:服务器返回了URL:

如果我仅使用以下命令提供代理服务器和代理端口:

System.setProperty("java.net.useSystemProxies","false");
System.setProperty("http.proxyHost", "192.168.1.226");
System.setProperty("http.proxyPort", "3128");
String encoded = new String(Base64Encoder.encode(new String("shantha:******").getBytes()));
_connection.setRequestProperty("Proxy-Authorization", "Basic " + encoded);
URL _serverConnection = new URL("http://www.sample.com/test.do");
HttpURLConnection _connection = null;
StringBuffer _strBuffer = new StringBuffer();

_connection = (HttpURLConnection) _serverConnection.openConnection();

_connection.setUseCaches(false);
_connection.setDoOutput(true);
_connection.setDoInput(true);

_connection.setRequestMethod("POST");

OutputStream _outStream = _connection.getOutputStream ();
BufferedWriter _bufWriter = new BufferedWriter( new OutputStreamWriter(_outStream, "UTF-8"));
_bufWriter.write("search-param-string");
_bufWriter.flush();
_bufWriter.close();
_outStream.close ();

int _status = _connection.getResponseCode();

BufferedReader _bufReader = new BufferedReader(new InputStreamReader(_connection.getInputStream()));
String _outputLine;
while ((_outputLine = _bufReader.readLine()) != null) {
    _strBuffer.append(_outputLine + "\n");
}

我获得所需的身份验证错误:

Servlet SearchRequestHandler的Servlet.service()引发异常 java.io.IOException:服务器返回URL的HTTP响应代码:407:

如果我将身份验证头添加到请求中,如:

System.setProperty("java.net.useSystemProxies","false");
System.setProperty("http.proxyHost", "192.168.1.226");
System.setProperty("http.proxyPort", "3128");
String encoded = new String(Base64Encoder.encode(new String("shantha:******").getBytes()));
_connection.setRequestProperty("Proxy-Authorization", "Basic " + encoded);
URL _serverConnection = new URL("http://www.sample.com/test.do");
HttpURLConnection _connection = null;
StringBuffer _strBuffer = new StringBuffer();

_connection = (HttpURLConnection) _serverConnection.openConnection();

_connection.setUseCaches(false);
_connection.setDoOutput(true);
_connection.setDoInput(true);

_connection.setRequestMethod("POST");

OutputStream _outStream = _connection.getOutputStream ();
BufferedWriter _bufWriter = new BufferedWriter( new OutputStreamWriter(_outStream, "UTF-8"));
_bufWriter.write("search-param-string");
_bufWriter.flush();
_bufWriter.close();
_outStream.close ();

int _status = _connection.getResponseCode();

BufferedReader _bufReader = new BufferedReader(new InputStreamReader(_connection.getInputStream()));
String _outputLine;
while ((_outputLine = _bufReader.readLine()) != null) {
    _strBuffer.append(_outputLine + "\n");
}

但我还是得到了同样的结果:

Servlet SearchRequestHandler的Servlet.service()引发异常 java.io.IOException:服务器返回了URL:

上述情况中提到的不带代理设置的基本程序是:

System.setProperty("java.net.useSystemProxies","false");
System.setProperty("http.proxyHost", "192.168.1.226");
System.setProperty("http.proxyPort", "3128");
String encoded = new String(Base64Encoder.encode(new String("shantha:******").getBytes()));
_connection.setRequestProperty("Proxy-Authorization", "Basic " + encoded);
URL _serverConnection = new URL("http://www.sample.com/test.do");
HttpURLConnection _connection = null;
StringBuffer _strBuffer = new StringBuffer();

_connection = (HttpURLConnection) _serverConnection.openConnection();

_connection.setUseCaches(false);
_connection.setDoOutput(true);
_connection.setDoInput(true);

_connection.setRequestMethod("POST");

OutputStream _outStream = _connection.getOutputStream ();
BufferedWriter _bufWriter = new BufferedWriter( new OutputStreamWriter(_outStream, "UTF-8"));
_bufWriter.write("search-param-string");
_bufWriter.flush();
_bufWriter.close();
_outStream.close ();

int _status = _connection.getResponseCode();

BufferedReader _bufReader = new BufferedReader(new InputStreamReader(_connection.getInputStream()));
String _outputLine;
while ((_outputLine = _bufReader.readLine()) != null) {
    _strBuffer.append(_outputLine + "\n");
}
我也尝试过代理选择器,但它不起作用,并给出相同的500错误。如果我在具有main方法的独立类中运行该程序,它将与代理设置一起工作

非常感谢任何人能帮助解决这个问题