RE: https external-graphics

Neil Smeby <[email protected]>
Newsgroups gmane.text.xml.fop.user
Message-ID <SN6PR1901MB2222E57E4C5DD5014254F948F2980@SN6PR1901MB2222.namprd19.prod.outlook.com>
Aha! I found the problem. Turns out I was using -Djava.ext.dirs=<path to fop> to execute FOP so that the dynamic class loading worked. But there's a built in way by using -Dfop.home= instead. The java.ext.dirs causes the java SSL connection to fail with a "RSA premaster secret error" that seems to get swallowed by the FOP exception handling here (google that error for details). In general maybe FOP could better log errors.
Probably a try/catch+log around the openStream call in the NormalResourceResolver class in the getResource method, but maybe also elsewhere to catch actual I/O errors.

-Neil

-----Original Message-----
From: Neil Smeby
Sent: Tuesday, January 8, 2019 12:34 PM
To: '[email protected]' <[email protected]>
Subject: RE: https external-graphics

(sorry to break the thread chain, I just recently joined the list and missed the original responses)

So the example image I was trying to use in FOP was a random google image search result (for foo) that was on a BBC media server that had https with a valid signed (not self-signed) certificate. And when I try to fetch the image using the simple java program below, it works fine. So it doesn't seem to be a JDK or certificate problem. Can someone else test the .fo file in my original email? Feel free to replace the image url with an https reference you trust.

import java.net.*;
import java.io.*;

public class foo {
    public static void main(String[] args) throws Exception {
        URL url = new URL("https://ichef.bbci.co.uk/images/ic/960x540/p01br4cp.jpg");
        URLConnection connection = url.openConnection();
        InputStream is = connection.getInputStream();

        BufferedReader in = new BufferedReader(new InputStreamReader(is));

        StringBuilder response = new StringBuilder();
        String inputLine;

        while ((inputLine = in.readLine()) != null)
            response.append(inputLine);

        in.close();

        System.out.println(response.toString());
    }
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.