Here's the stack:
Using: org.jfree.chart.encoders.SunPNGEncoderAdapter
org.apache.tapestry.BindingException: Error converting value for
parameter
javascript: No type converter for type org.apache.tapestry.IAsset is
available. [context:/WEB-INF/tapcomps/Border.jwc, line 29, column 55]
at org.apache.tapestry.binding.AbstractBinding.getObject(
AbstractBinding.java:97)
at $CustomShell_80.getJavascript($CustomShell_80.java)
at
com.expd.lib.tapestry_v40.components.CustomShell.renderComponent (
CustomShell.java:111)
at $CustomShell_80.renderComponent($CustomShell_80.java)
at
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java
:617)
at org.apache.tapestry.BaseComponent.renderComponent (
BaseComponent.java:92)
at
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java
:617)
at org.apache.tapestry.BaseComponent.renderComponent(
BaseComponent.java:92)
at org.apache.tapestry.AbstractComponent.render (
AbstractComponent.java:617)
at
org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:275)
at org.apache.tapestry.engine.RequestCycle.renderPage(
RequestCycle.java:366)
at
org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse (
ResponseRendererImpl.java:71)
at
$ResponseRenderer_108c54f6985.renderResponse($ResponseRenderer_108c54f6985.java)
at
org.apache.tapestry.engine.PageService.service(PageService.java:68)
at
$IEngineService_108c54f69f8.service($IEngineService_108c54f69f8.java)
at
org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(
EngineServiceOuterProxy.java:66)
at org.apache.tapestry.engine.AbstractEngine.service(
AbstractEngine.java:248)
at
org.apache.tapestry.services.impl.InvokeEngineTerminator.service (
InvokeEngineTerminator.java:60)
at
$WebRequestServicer_108c54f69cf.service($WebRequestServicer_108c54f69cf.java)
at org.apache.tapestry.services.impl.DisableCachingFilter.service(
DisableCachingFilter.java:48)
at
$WebRequestServicerFilter_108c54f69d1.service($WebRequestServicerFilter_108c54f69d1.java)
at
$WebRequestServicer_108c54f69d3.service($WebRequestServicer_108c54f69d3.java)
at
$WebRequestServicer_108c54f69cb.service($WebRequestServicer_108c54f69cb.java)
at
org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service
(WebRequestServicerPipelineBridge.java:56)
at
$ServletRequestServicer_108c54f69af.service($ServletRequestServicer_108c54f69af.java)
at org.apache.tapestry.request.DecodedRequestInjector.service(
DecodedRequestInjector.java:55)
at
$ServletRequestServicerFilter_108c54f69ab.service($ServletRequestServicerFilter_108c54f69ab.java)
at
$ServletRequestServicer_108c54f69b1.service($ServletRequestServicer_108c54f69b1.java)
at org.apache.tapestry.multipart.MultipartDecoderFilter.service(
MultipartDecoderFilter.java:52)
at
$ServletRequestServicerFilter_108c54f69a9.service($ServletRequestServicerFilter_108c54f69a9.java)
at
$ServletRequestServicer_108c54f69b1.service($ServletRequestServicer_108c54f69b1.java)
at org.apache.tapestry.services.impl.SetupRequestEncoding.service(
SetupRequestEncoding.java:53)
at
$ServletRequestServicerFilter_108c54f69ad.service($ServletRequestServicerFilter_108c54f69ad.java)
at
$ServletRequestServicer_108c54f69b1.service($ServletRequestServicer_108c54f69b1.java)
at
$ServletRequestServicer_108c54f69a3.service($ServletRequestServicer_108c54f69a3.java)
at org.apache.tapestry.ApplicationServlet.doService(
ApplicationServlet.java:123)
at com.expd.app.expo2.webaccess.ExpoTapestryServlet.doService (
ExpoTapestryServlet.java:52)
at org.apache.tapestry.ApplicationServlet.doGet(
ApplicationServlet.java:79)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service (HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java :193)
at org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:256)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext
(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(
StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java
:995)
at org.apache.catalina.core.StandardContextValve.invoke (
StandardContextValve.java:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext
(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(
StandardPipeline.java :480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java
:995)
at org.apache.catalina.core.StandardContext.invoke(
StandardContext.java:2422)
at org.apache.catalina.core.StandardHostValve.invoke (
StandardHostValve.java:180)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext
(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(
ErrorDispatcherValve.java :171)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext
(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java:163)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext
(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(
StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java
:995)
at org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext
(StandardPipeline.java :643)
at org.apache.catalina.core.StandardPipeline.invoke(
StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java
:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service
(CoyoteAdapter.java
:199)
at org.apache.coyote.http11.Http11Processor.process(
Http11Processor.java:828)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection
(Http11Protocol.java :700)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(
PoolTcpEndpoint.java:584)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:683)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.hivemind.ApplicationRuntimeException: No type
converter for type org.apache.tapestry.IAsset is available.
at org.apache.tapestry.coerce.ValueConverterImpl.coerceValue(
ValueConverterImpl.java :105)
at
$ValueConverter_108c54f6957.coerceValue($ValueConverter_108c54f6957.java)
at org.apache.tapestry.binding.AbstractBinding.getObject(
AbstractBinding.java:91)
... 68 more
On 1/13/06, Jason Suplizio <[EMAIL PROTECTED]> wrote:
Hi!
I've created a customized version of the Shell
component...essentially I
want to to extend the handling of stylesheet assets to javascripts
(write
<script> tags embedded in the <head > element).
CustomShell.java adds to the original:
public abstract IAsset getJavascript();
public abstract Object getJavascripts();
public void renderComponent(IMarkupWriter writer, IRequestCycle
cycle) {
/** added the following **/
IAsset javascript = getJavascript();
if (javascript != null)
writeJavascriptScript(writer, cycle, javascript);
Iterator scripts = (Iterator)
getValueConverter().coerceValue(
getJavascripts(),
Iterator.class);
while (scripts.hasNext())
{
javascript = (IAsset) i.next();
writeJavascriptScript(writer, cycle, javascript);
}
}
private void writeJavascriptScript(IMarkupWriter writer,
IRequestCycle cycle, IAsset javascript)
{
writer.beginEmpty("script");
writer.attribute("type", "text/javascript");
writer.attribute("src", javascript.buildURL());
writer.closeTag();
writer.println();
}
CustomShell.jwc adds these to the original:
<parameter name="javascript">
<description>
If specified, provides an external javascript for the page.
</description>
</parameter>
<parameter name="javascripts">
<description>
Array or collection of stylesheet assets.
</description>
</parameter>
However, this isn't working as I'm running into a ValueConverter
issue:
Exception: "org.apache.hivemind.ApplicationRuntimeException: No type
converter for type org.apache.tapestry.IAsset is available.
Borrowing from the Shell.jwc file, I notice that the following service
is injected - which apparently implements
org.apache.tapestry.coerce.ValueConverterImpl
<inject property="valueConverter" object="service:
tapestry.coerce.ValueConverter"/>
What do I need to do to get my custom shell comp to render the script
assets? Thanks in advance!
Jason