Well, thanks to Geoff I forgot to put my template (doh). Now I'm getting an
bizzarre error:
java.lang.NoSuchMethodError
org.apache.tapestry.engine.IEngineService.getLink
(ZLjava/lang/Object;)Lorg/apache/tapestry/engine/ILink; Stack Trace:
- org.tupiniquim.components.ajax.AjaxRequest.getScriptSymbols(
AjaxRequest.java:32)
<component-specification allow-body="no" allow-informal-parameters="no"
class="org.tupiniquim.components.ajax.AjaxRequest">
<parameter name="listener" required="yes"/>
<parameter name="receiveName" required="yes"/>
<parameter name="sendName" required="yes"/>
<parameter name="refreshTimeout" required="no"/>
<component id="script" type="Script">
<binding name="script"
value="'/org/tupiniquim/components/ajax/AjaxRequest.script'"/>
<binding name="symbols" value="scriptSymbols"/>
</component>
<inject property="service" object="engine-service:ajaxXML"/>
</component-specification>
public Map getScriptSymbols(){
ILink link = getService().getLink(false,this); // This is where the
error happens
Map result = new HashMap();
result.put("sendFunctionName", getSendName());
result.put("receiveFunctionName", getReceiveName());
result.put("url", link.getURL());
if(getRefreshTimeout() != null){
result.put("refreshTimeOut",getRefreshTimeout());
}
return result;
}
<contribution
configuration-id="tapestry.services.ApplicationServices">
<service name="ajaxXML" object="service:org.tupiniquim.ajaxXML" />
</contribution>
<service-point id="ajaxXML"
interface="org.apache.tapestry.engine.IEngineService">
<invoke-factory>
<construct class="org.tupiniquim.services.xml.XMLService">
</construct>
</invoke-factory>
</service-point>
After debugging I found that Tapestry uses a proxy (EngineOuterProxy) for
its services. But why it's not allowing the use of the method? Am I missing
something?