2013-02-18 3 views
1

Я скопировал пример кода, который «иллюстрирует, как запрашивать верхние 5 наивысших приоритетных дефектов», найденный в нижней части страницы Java Toolkit for Rally Rest.Rally Java Rest Unknownhost Exception

Я изменил имя пользователя и пароль соответственно, но я получаю UnknownHostException.

Вот StackTrace:

log4j:WARN No appenders could be found for logger (org.apache.http.impl.conn.BasicClientConnectionManager). log4j:WARN Please initialize the log4j system properly. Exception in thread "main" java.net.UnknownHostException: rally1.rallydev.com at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:849) at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1202) at java.net.InetAddress.getAllByName0(InetAddress.java:1153) at java.net.InetAddress.getAllByName(InetAddress.java:1083) at java.net.InetAddress.getAllByName(InetAddress.java:1019) at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45) at org.apache.http.impl.conn.DefaultClientConnectionOperator.resolveHostname(DefaultClientConnectionOperator.java:278) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:162) at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784) at com.rallydev.rest.RallyRestApi.doRequest(RallyRestApi.java:253) at com.rallydev.rest.RallyRestApi.doGet(RallyRestApi.java:323) at com.rallydev.rest.RallyRestApi.query(RallyRestApi.java:179) at com.jdes.AgileToRally.AgileToRally.main(AgileToRally.java:37)

Line 37: QueryResponse queryResponse = restApi.query(defects);

Я попытался изменить имя сервера, имя пользователя и пароль, но у меня не было никакой удачи.

Благодаря

ответ

1

Похоже, у вас есть прокси-сервер в пути.

restApi.setProxy(new URI(proxyserver)); 
1

Глядя на ваш стек трассировки может показаться, ваша машина пытается найти адрес IPV6 для rally1.rallydev.com и терпит неудачу, потому что не один (а затем не падает обратно в IPV4). Это указывает на проблему с конфигурацией вашего компьютера (или используемым DNS-сервером) более чем на Java.

Это, как говорится, вы можете заставить JVM предпочесть ipv4, который должен решить проблему:

prompt> java -Djava.net.preferIPv4Stack=true ... 

Если вы используете IDE вам нужно настроить его, чтобы передать -Djava.net.preferIPv4Stack=true на Java при запуске программа.

+0

добавить что-то вроде этого: 'System.setProperty (" java.net.preferIPv4Stack "," true ");'? – MikeB

+0

@MikeB - Честно говоря, вам придется попробовать. Не исследуя это, я не уверен, когда это конкретное системное свойство читается классами JVM/Networking, и поэтому его изменение после запуска приложения может не иметь никакого эффекта. –

+0

Я попытался передать эту переменную разными способами, и ни один из них не дал мне другого результата. Считаете ли вы, что проблема может быть в «log4j»? – MikeB