2016-06-15 2 views
0

네트워크 활동을 수행하는 maven 플러그인을 작성했습니다. 그것을 실행할 때 매개 변수를 전달하여 프록시를 사용해야 함을 알립니다.자바 프록시가 자동으로 실패한 것으로 보입니다. 큰 소리로 실패하게하려면 어떻게해야합니까?

mvn myplugin:goal -Dhttps.proxyHost=nonexistent-site.com -Dhttps.proxyPort=8000 

존재하지 않는 프록시를 지정해도 성공합니다. 그것은 프록시를 우회하고 그냥 프록시가 나쁜 경우 네트워크를 직접 호출하는 것 같다. (이것은 어쨌든 내 이론이다.) 프록시를 올바로 설정하지 않은 것일 수도있다.

또한 maven settings.xml을 편집하고 불량한 프록시 호스트를 추가했지만 조용하게 실패한다.

같은 나는 매개 변수는 프록시가 나쁜 경우

가 어떻게 네트워크 전화를 걸 수 있습니다

실패 MAVEN_OPTS에 추가하면?

+0

흠'maven-dependency-plugin' 명령으로 mvn dependency : get -Dartifact = "log4j : log4j : 1.1.3"-Dhttps.proxyHost = nonexistent-site.com -Dhttps.proxyPort = 8000'과 실패했다. Maven 플러그인에서 이러한 프록시 설정을 사용하고 있습니까? 코드를 게시 할 수 있습니까? – Tunaki

+0

나는 내가 어쩌면 깨닫지 못했다. 내 네트워크 호출에 com.mashape.unirest.http.Unirest 라이브러리를 사용하고 있습니다. 프록시 객체를 설정하는 API가있는 것처럼 보이기 때문에 아마도 시스템 프록시 설정을 고려하지 않습니다. – kane

+1

보이지 않는 것 같습니다 예 : https://github.com/Mashape/unirest-java/issues/65 명시 적으로 프록시를 설정해야합니다. – Tunaki

답변

0

@Tunaki 덕분에 문제가 발생했습니다.

사용중인 라이브러리 (com.mashape.unirest.http.Unirest)가 Java 프록시 설정을 따르지 않습니다. 이 문제는 위의 @ Tunaki의 코멘트에 문서화되어 있습니다.

jdk의 일부가 아닌 네트워크 라이브러리를 사용하는 경우 자바 설정을 준수해야합니다. 는 Unirest의 경우,이 질문은 사람을 도움이 정말 대답 경우 또는 수동으로 잘 모르겠어요 그래서

HttpHost proxy = new HttpHost(System.getProperty("https.proxyHost") 
           , new Integer(System.getProperty("https.proxyPort"))); 
Unirest.setProxy(proxy); 

같은 프록시를 만들 수 있었다. 적용 할 경우를 대비하여 여기에 남겨 두겠습니다. 그러나 누군가 내가 이것을 삭제해야한다고 말하면 나는 downvotes 몇 가지를 얻을, 나는 질문을 제거합니다.

+0

Unirest는 현재 프록시 인증을 지원하지 않으므로 다른 라이브러리를 사용하는 것이 중요하다고 생각하고 싶습니다. https://github.com/Mashape/unirest-java/issues/103 – kane

관련 문제