我正在尝试使用 JaxB 读取本地 XML 文件。此 XML 文件包含一个指向 DTD 的链接,该链接使用 HTTPS(我无法打开它)。问题是,在我的公司中,我们位于插入自己的证书的 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;
}