Hi,

You should use response.render(CssHeaderItem.forCSS(string)). This will
contribute it in <style> HTML element. With your approach it will be plain
text in the middle of the HTML.
To get the "string" you can use new
WebExternalResourceStream("report.css").getInputStream(),
read, convert to String, close.


Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Fri, Feb 6, 2015 at 4:21 PM, Per Newgro <[email protected]> wrote:

> Hi,
>
> I like to render a PDF by my wicket page using flying-saucer. There i
> reference my css file by url (link). So far everything works.
> But if i switch to SSL flying-saucer breaks. Hmm.
>
> My solution to this issue would be to include content of my css file
> directly in the wicket-page used to render the pdf.
>
> I tried to get the resource and render it in markup like this
>
> <code>
> MyPage.java
>
> @Override
> public void renderHead(IHeaderResponse response) {
>   IResource s = new SharedResourceReference("report.css").getResource();
>   Attributes a = new Attributes(getRequest(), getResponse());
>   s.respond(a);
>   super.renderHead(response);
> }
> </code>
>
> but i get
>         at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
>         at
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
>         at java.lang.Thread.run(Thread.java:722)
> Caused by: java.lang.UnsupportedOperationException
>         at
> org.apache.wicket.response.StringResponse.write(StringResponse.java:88)
>         at
> org.apache.wicket.request.Response$StreamAdapter.write(Response.java:148)
>         at org.apache.wicket.util.io.Streams.copy(Streams.java:109)
>         at org.apache.wicket.util.io.Streams.copy(Streams.java:76)
>         at
> org.apache.wicket.request.resource.ContextRelativeResource$1.writeData(ContextRelativeResource.java:110)
>         at
> org.apache.wicket.request.resource.AbstractResource.respond(AbstractResource.java:528)
>         at de.MyPage.renderHead(MyPage.java:88)
>         at org.apache.wicket.Component.renderHead(Component.java:4419)
>         at org.apache.wicket.Component.renderHead(Component.java:2679)
>         at
> org.apache.wicket.markup.renderStrategy.AbstractHeaderRenderStrategy.renderRootComponent(AbstractHeaderRenderStrategy.java:127)
>         at
> org.apache.wicket.markup.renderStrategy.ChildFirstHeaderRenderStrategy.renderHeader(ChildFirstHeaderRenderStrategy.java:60)
>         at
> org.apache.wicket.markup.html.internal.HtmlHeaderContainer.onComponentTagBody(HtmlHeaderContainer.java:170)
>         at
> org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:71)
>         at
> org.apache.wicket.Component.internalRenderComponent(Component.java:2529)
>         ... 51 more
>
> It seems that my ContextRelativeResource only provides content as byte[]
> ans StringResponse not supporting this.
> Maybe i be off the track.
>
> Thanks for your support
> Per
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to