2012-04-24 2 views
4

내부 인트라넷 웹 서비스에 연결해야합니다. 우리 회사는 프록시 서버를 사용하여 인터넷에 액세스하지만 인트라넷 사이트는 프록시를 통과하지 않습니다. IE와 Firefox에서 WSDL을 탐색 할 수 있지만 두 브라우저에서 프록시 예외 목록에 주소를 추가해야합니다.프록시 예외 url을 사용하도록 wsimport에 지시하는 방법

wsimport를 사용할 때 프록시 서버로 인해 WSDL을 가져올 수 없습니다. 추가 또는 - httpproxy arg 밖으로 나가는 "프록시를 통해 터널을 사용할 수 없습니다"오류 그래서 나는 그것을 할 필요가있는 방법이 아닙니다 추측.

누구든지이 URL에 대한 프록시 서버를 무시하도록 wsimport에 알릴 수있는 방법을 알고 있습니까?

답변

2

답변을 찾았습니다. JVM 매개 변수로 다음을 추가해야하며 Internet Explorer (또는 Mac 용 Safari) 프록시 주소 및 제외 목록을 사용합니다.

-Djava.net.useSystemProxies=true 

은 내가 내부 (인트라넷) URL의 프록시를 사용하고 wsimport의를 사용하여 (w3c.com) 외부 URL에 대한 프록시를 건너 뛸 수있는 방법을 찾고이 게시물에 도착 http://jeannotsweblog.blogspot.co.uk/2009/06/wsimport-with-proxy.html

7

의 답변을 얻었다. exe (JDK 1.6, 1.7 등의 일부). nonProxyHosts를 넣을 수있는 기능이 없으므로 Java 클래스 호출을 사용했다. 읽기 쉽이

java -Dhttp.proxyHost=proxyServer -Dhttp.proxyPort=9000 -Dhttp.nonProxyHosts="localhost|*.intranet-domain.com" -classpath %JAVA_HOME%\lib\tools.jar com.sun.tools.internal.ws.WsImport -p com.ws.client.pkg http://app.intranet-domain.com/endpoint?wsdl 

같은

뭔가 :

java 
    -Dhttp.proxyHost=proxyServer 
    -Dhttp.proxyPort=9000 
    -Dhttp.nonProxyHosts="localhost|*.intranet-domain.com" 
    -classpath %JAVA_HOME%\lib\tools.jar 
    com.sun.tools.internal.ws.WsImport 
    -p com.ws.client.pkg 
    http://app.intranet-domain.com/endpoint?wsdl 

"-Dhttp.nonProxyHosts"당신이 전에 그 라인에 프록시를 구성하는 경우에만 작동합니다, 당신은 모든 필요한 것을 명심하십시오 매개 변수 따라서 기본 프록시를 비활성화하려는 경우 여기에서 다시 구성해야합니다.

+0

있겠습니다 wsimport의 옵션의 --httpproxy 옵션을 사용할 수 있습니다 나는 마지막 단락을 추가했다. –

+1

고마워! 나는 이것을 구성하기 위해'https.proxyHost'를 필요로했습니다. – jpaugh

0

접근이 작동합니다 :

은 그 두 가지 티켓을 생성 특정 URL에 프록시를 사용하고 ProxySelector 클래스를 살펴보십시오. 프록시 호스트와 포트로 ProxySelector를 확장 한 자체 프록시 선택기 클래스를 작성한 다음 기본 프록시 선택기로 설정할 수 있습니다.이 스레드 How can I use an HTTP proxy for a JAX-WS request without setting a system-wide property?에서 Iroh 삼촌의 대답을 살펴보십시오. ProxyContlector에 대한 자세한 내용은 http://docs.oracle.com/javase/7/docs/technotes/guides/net/proxies.html을 참조하십시오. 당신이 너무 많이 그것을 되돌릴 자유롭게 게시물을 변경 느끼는 경우