2012-02-23 3 views
2

javax.xml.transform.Transformer으로 XML 파일을 변환하려고하지만 웹 액세스가 프록시를 통과합니다.네트워크 프록시에서 Java XML Transformer 사용

변압기가 장착 된 새로운 URIResolver을 사용해 보았지만 작동하지 않았습니다. 변압기에 프록시 사용을 지시하려면 어떻게해야합니까?

답변

3

JDK에서 일반적인 네트워크 액세스의 경우 시작시 JDK 인수를 전달하는 옵션이 있습니다. 같은

뭔가 :

java -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080 ... MyTransformerClass 

은 종종 더 나은 솔루션은 설정 파일에서 읽은 값을 사용하여 응용 프로그램에서 프로그래밍 방식으로 옵션을 설정합니다.

뭔가 같은 :

System.setProperty("http.proxyHost", myConfig.getProxyHost()); 
System.setProperty("http.proxyPort", myConfig.getProxyPort()); 

당신이 XSD를 해결해야 XML 처리의 구체적인 예에서,

그러나 모든 옵션에 대한 http://docs.oracle.com/javase/6/docs/technotes/guides/net/proxies.html을 참조 DTD는 거의 항상 더 나은을 가지고있어 등 시도한대로 로컬 복사본을 만들고 파서에 javax.xml.stream.XMLResolver를 지정하여 원격이 아닌 로컬 복사본을로드합니다.

+0

감사합니다. – STM

1

응용 프로그램에서 프록시를 설정해야합니다. , 시스템 등록 정보로 프록시를

SimpleAuthenticator sm = new simpleAuthenticator("user", "pass") 
Authenticator.setDefault(sm); 

이 포트를 세 번째 통과 :

import java.net.Authenticator; 
import java.net.PasswordAuthentication; 

public class SimpleAuthenticator extends Authenticator { 

    private String username, password; 

    public SimpleAuthenticator(String username, String password) { 

     this.username = username; 
     this.password = password; 
    } 

    protected PasswordAuthentication getPasswordAuthentication() { 

     return new PasswordAuthentication(username, password.toCharArray()); 
    } 
} 

두 번째 코드에서 인증 자 초기화 :

첫째, 당신은 이와 같은 java.net.Authenticator를 확장하는 클래스를 작성해야 귀하의 응용 프로그램에. 부두와 Maven을 사용하면 다음과 같이 표시됩니다.