JaxB を使用してローカルの XML ファイルを読み込もうとしています。この XML ファイルには、HTTPS を使用している DTD へのリンクが含まれています (それを変更することはできません)。問題は、私の会社では、独自の証明書を挿入する HTTP プロキシの背後にいることです。私の上司は、Heise か何かで時間を無駄にしないようにしたいのでしょう。もちろん、JAXB はこれを有効な証明書として認識せず、java.net.ConnectException を返します。URL を信頼していますが、証明書の確認をスキップするにはどうすればよいですか?
問題の最小限の例を次に示します。
XML:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE hallo SYSTEM "https://www.example.com/my.dtd" >
<xmlroot>
<name>John Peel</name>
</xmlroot>
そしてコード:
import java.io.File;
import javax.xml.bind.*;
import javax.xml.bind.annotation.*;
public class JaxBTest
{
public static void main(String[] args)
{
System.setProperty("http.proxyHost", "12.34.56.78");
System.setProperty("http.proxyPort", "8080");
XmlRoot var = JAXB.unmarshal( new File("bla.xml"), XmlRoot.class );
System.out.println("var: "+var.name);
}
}
@XmlRootElement
class XmlRoot
{
@XmlElement( name = "name" )
public String name;
}