Мы вызываем URL-адрес, используя настройки прокси-сервера, с помощью отдельного кода примера Java на наших серверах weblogic (node1/node2). Этот код отлично работает на узле 1, но тот же код не работает на сервере node2. Мы уже проверили настройки прокси-сервера и учетные все хорошо, но до сих пор мы получаем следующие ошибки:java.net.Authenticator: java.net.ProtocolException: сервер перенаправлен слишком много раз (20)
java.net.ProtocolException: Server redirected too many times (20)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1323)
at ProxyCode.start2(ProxyCode.java:54)
at ProxyCode.main(ProxyCode.java:23)
Exception in thread "Main Thread" java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:61)
at java.io.InputStreamReader.<init>(InputStreamReader.java:55)
at ProxyCode.readFromInputStream(ProxyCode.java:65)
at ProxyCode.start2(ProxyCode.java:59)
at ProxyCode.main(ProxyCode.java:22)
Кроме того, пожалуйста, найти свой фрагмент кода ниже: SimpleAuthenticator.java
импорт java.net.Authenticator; импорт java.net.PasswordAuthentication;
public class SimpleAuthenticator extends Authenticator
{
private String username;
private String password;
public SimpleAuthenticator(String username,String password)
{
this.username = username;
this.password = password;
}
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(
username,password.toCharArray());
}
}
Основной класс:
String url = "http://www.oracle.com/technetwork/java/readme-2-149793.txt";
String proxy = "proxyserver";
String port = "8080";
String username = "username";
String password = "password";
Authenticator.setDefault(new SimpleAuthenticator(username,password));
URL server = null;
try {
CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL));
server = new URL(url);
}
catch (MalformedURLException e) {
e.printStackTrace();
}
Properties systemProperties = System.getProperties();
systemProperties.setProperty("http.proxyHost", proxy);
systemProperties.setProperty("http.proxyPort", port);
InputStream in = null;
URLConnection connection = null;
try {
connection = (URLConnection) server.openConnection();
connection.connect();
in = connection.getInputStream();
}
catch (IOException e) {
e.printStackTrace();
}
System.out.println(readFromInputStream(in));
}
public static String readFromInputStream(InputStream in) {
StringBuffer strBuf = new StringBuffer();
char ac[];
BufferedReader buf = new BufferedReader(new InputStreamReader(in));
try
{
while (buf.ready()) {
ac = new char[10000];
buf.read(ac);
strBuf.append(ac);
}
buf.close();
}
catch (IOException e) {
e.printStackTrace();
}
Мы застряли в этом, так как месяцы, и не в состоянии получить любую полезную информацию в любом месте. добрый help.thanks
Вы использовали инструменты разработчика Firebug или chrome/IE, чтобы узнать, какие редиректы были сделаны? Иногда это может дать представление о том, что происходит. – Simon
Я запускаю его на unix box.and, проверенный с использованием результата CURL, является положительным. Работает, но вызов URL из кода JAVA не работает. – user3134221
Я все еще думаю, что смотреть на то, какие перенаправления сделаны, было бы полезно. http://getfirebug.com/network – Simon