Hi Jeremias,

It doesnt do the trick for me since I have no idea where any of our customers might have decided to install their application server. Also I am using EAR file which means that servletContext.getRealPath( string ) wouldnt do it either. I am currently looking into using the javax.servlet.context.tempdir directory, and put the file there in init() for later use. That solution would probably work, but I�m not sure if I can look at myself in the mirror after such a hack...

Br - Johan


Jeremias Maerki wrote:

Are your images located on the same server as FOP? If yes, you could
access the files directly by filesystem if you set baseDir to something
like:
Configuration.put("baseDir", "C:\tomcat\webapps\webapp");

Surely not a clean solution but faster than going via http/https and it
could work for the moment.

On 19.11.2002 14:19:33 Johan �brandt wrote:

Hi Jeremias,

Thank you for answering,

I am already using urls, i.e http://host.domain.com/webapp/images/foo.gif works, but https://host.domain.com/webapp/images/foo.gif does not.

> Currently there's no possibility to set or use an EntityResolver (or
> similar) but it's on the todo list.

Nice to hear, it would be usefull on occasion.

Br - Johan


Jeremias Maerki wrote:


Currently there's no possibility to set or use an EntityResolver (or
similar) but it's on the todo list. In the meantime you could try to set
the baseURL in Java code like this:

Configuration.put("baseDir", "https://myserver/somedir";);

But please be aware that this currently only works in the CVS version of
FOP (branch 'fop-0_20_2-maintain'). The current release only support
local directories, no URLs. This will be in the upcoming 0.20.5 release.

On 19.11.2002 13:51:55 Johan �brandt wrote:


Hi,

I have the following external graphic declaration in a XML file:

<fo:external-graphic src="url('{$base-url}/images/logo.jpg')" height="30pt" width="170pt"/>

I render it to a servlet outputstream using:

Driver driver;
driver = new Driver( new InputSource( reader ), out ); driver.setRenderer( Driver.RENDER_PDF );
driver.run();


This works just fine when having the server configured for HTTP but when using HTTPS, it fails with error:

Error while creating area : Error with image URL: unknown certificate and no base directory is specified

I think this is because I am using a own generated certificate and not a real certificate from f ex Verisign. I know that I can either create my own SecurityManager (effectively disabling security), or use a real certificate. I would however like to circumvent all such hazzles and retrieve the image in some other means instead, intially I tried to use a custom EntityResolver, but I doesnt seem like it is used for image url resolution:

i.e.

driver = new Driver( new InputSource( reader ), out ); driver.setRenderer( Driver.RENDER_PDF );

XMLReader xmlReader = XMLReaderFactory.createXMLReader();
xmlReader.setEntityResolver( new CustomEntityResolver() );
driver.setXMLReader( xmlReader );

driver.run();

Does anyone have any tips how to get the EntityResolver approach to work, or know any other way to achieve something similar.




Jeremias Maerki




--
Johan �brandt

Technical Project Manager
(Tekninen projektip��llikk�)
Tel. +358 9 6817 3342
Mobile. +358 40 848 8068
[EMAIL PROTECTED]

Profit Software Oy
Meritullinkatu 11 C
00170 Helsinki, Finland


__________________________________________________________________________

This message and its attachments have been found clean from known viruses with three different antivirus programs.
__________________________________________________________________________

Reply via email to