Сонар клиент org.sonar.wsclient.base.HttpException: ошибка 407 - PullRequest
0 голосов
/ 04 февраля 2019

Я использую API-интерфейс клиента сонара для отображения запахов кода в персонализированной версии.Но я получаю вышеуказанную ошибку при этом?прежде чем я использовал, чтобы получить вывод.

public class ab{
public static void main(String args[]) {
try {
    String url = "http://127.0.0.1:9001";
    String login = "admin";
    String password = "admin";

    SonarClient client = SonarClient.builder()
              .url(url)
              .login(login)
              .password(password)
              .build();

    IssueQuery query = IssueQuery.create();
    query.rules("Major","Minor","Critical");
    IssueClient issueClient = client.issueClient();
    Issues issues = issueClient.find(query);
    List<Issue> issueList = issues.list();

    for (int i = 0; i < issueList.size(); i++) {
       System.out.println(issueList.get(i).projectKey() + " " +
                          issueList.get(i).componentKey() + " " +
                          issueList.get(i).line() + " " +
                          issueList.get(i).ruleKey() + " " +
                          issueList.get(i).severity() + " " +
                          issueList.get(i).message());
     }
} catch (Exception ex) {
  System.out.println(ex);
}
}

1 Ответ

0 голосов
/ 04 февраля 2019

Http Error 407 выбрасывается, когда ресурсу, к которому вы пытаетесь получить доступ, требуется Аутентификация прокси .Но поскольку вы обращаетесь к сервису через 127.0.0.1 , что указывает на то, что это ваша локальная система, вы не должны получить ошибку 407.Попробуйте добавить запись в файл хостов (в разделе YOUR_WINDOWS_FOLDER \ System32 \ drivers \ etc ) как

127.0.0.1       localhost

В качестве альтернативы, вы пытались получить доступ к URL через localhost, как показано ниже?

http://localhost:9001

И, наконец, если sonarqube размещается на отдельном сервере, вы можете установить прокси-аутентификацию, как показано ниже, непосредственно перед вызовом службы.

import java.net.Authenticator;
import java.net.InetSocketAddress;
import java.net.PasswordAuthentication;
import java.net.Proxy;
.
.
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("PROXY_SERVER", 80));
Authenticator authenticator = new Authenticator() {

    public PasswordAuthentication getPasswordAuthentication() {
        return (new PasswordAuthentication("PROXY_USERNAME", "PROXY_PASSWORD".toCharArray()));
    }
};
Authenticator.setDefault(authenticator);
...