在Java中,您可以使用相同的API但使用不同的URL协议加载所有类型的资源:
file:///tmp.txt
http://127.0.0.1:8080/a.properties
jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class
Run Code Online (Sandbox Code Playgroud)
这很好地将资源的实际加载与需要资源的应用程序分离,并且由于URL只是一个String,因此资源加载也很容易配置.
是否有使用当前类加载器加载资源的协议?这与Jar协议类似,不同之处在于我不需要知道资源来自哪个jar文件或类文件夹.
Class.getResourceAsStream("a.xml")当然,我可以使用它,但这需要我使用不同的API,因此更改现有代码.我希望能够在所有我可以通过更新属性文件指定资源URL的地方使用它.
我正在使用Flying Saucer从xhtml创建一个pdf,托管在tomcat服务器上.pdf中包含的大多数图像都是公开可用的(徽标等),但其中一些图像在登录后受到保护(即,如果用户已登录,则通过servlet流式传输).
当我在浏览器中粘贴网址时,图像当然显示正常,因为浏览器会发送带有请求的会话.但是当Flying Saucer渲染pdf时,它不包括受保护的图像,因为它对会话一无所知.
所以,我的问题是; 是否有任何方法可以包含Flying Saucer的字节流来解决,就像可以添加可解析的字体一样?我试图像这样,但有没有简单的方法来设置UAC的ITextRenderer,并抱怨每次我试过一次.