There is a nice example on how to use ServiceLink component with your
own EngineService in Chapter 8 (Handling File Downloads and
Uploads) of
"Enjoying Web Development w/ Tapestry" book. It also has nice
explanations on the "flow"...
Dennis
Warner Onstine wrote:
> After some more diging I decided to try some other things and
now have a
> new (stranger error).
>
> I removed the injectobject annotation and replaced it with this
in the
> UpcomingEvents.page:
> <inject property="icalService"
> object="service:eventscalendar.ICalService"/>
>
> I also lower-case the "c" on the method thinking that might be
causing
> ognl to freak out.
> public abstract IEngineService getIcalService();
>
> finally I moved the service-point above the AppServices
declaration in
> the hivemodule thinking it might be a load-order thing (btw I
know that
> hivemodule is getting loaded properly because I have friendly URLs
> working properly):
> <service-point id="ICalService"
> interface="org.apache.tapestry.engine.IEngineService">
> <invoke-factory>
> <construct
> class="com.sourcebeat.tap101.services.ical.ICalService">
> <set-object property="eventDAO"
value="spring:eventDAO"/>
> <set-object property="linkFactory"
> value="infrastructure:linkFactory"/>
> </construct>
> </invoke-factory>
> </service-point>
> <contribution configuration-id="
tapestry.services.ApplicationServices">
> <service name="ical"
object="service:eventscalendar.ICalService"
/>
> </contribution>
>
> Doing all this I now get this error (clearly something is just
not right
> in either my config or something else):
> No engine service named 'null' is available.
> Stack Trace:
> org.apache.tapestry.services.impl.ServiceMapImpl.buildProxy(
ServiceMapImpl.java:143)
>
> org.apache.tapestry.services.impl.ServiceMapImpl.getService(
ServiceMapImpl.java:105)
>
> $ServiceMap_10e921aa0f0.getService($ServiceMap_10e921aa0f0.java)
> org.apache.tapestry.engine.AbstractEngine.getService
(AbstractEngine.java
:164)
>
> org.apache.tapestry.link.AbstractLinkComponent.getLink(
AbstractLinkComponent.java:197)
>
> org.apache.tapestry.link.ServiceLink.getLink(ServiceLink.java:38)
> org.apache.tapestry.link.DefaultLinkRenderer.constructURL(
DefaultLinkRenderer.java:112)
>
> org.apache.tapestry.link.DefaultLinkRenderer.renderLink(
DefaultLinkRenderer.java:62)
>
> org.apache.tapestry.link.AbstractLinkComponent.renderComponent(
AbstractLinkComponent.java:95)
>
> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java:617)
> org.apache.tapestry.AbstractComponent.renderBody
(AbstractComponent.java
:434)
>
> org.apache.tapestry.components.RenderBody.renderComponent(
RenderBody.java:44)
>
> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java:617)
> org.apache.tapestry.AbstractComponent.renderBody
(AbstractComponent.java
:434)
>
> org.apache.tapestry.html.Body.renderComponent(Body.java:129)
> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java:617)
> org.apache.tapestry.AbstractComponent.renderBody
(AbstractComponent.java
:434)
>
> org.apache.tapestry.html.Shell.renderComponent(Shell.java:115)
> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java:617)
> org.apache.tapestry.BaseComponent.renderComponent
(BaseComponent.java:92)
> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java:617)
> org.apache.tapestry.BaseComponent.renderComponent
(BaseComponent.java:92)
> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java:617)
> org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:275)
> org.apache.tapestry.engine.RequestCycle.renderPage
(RequestCycle.java
:366)
>
org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse
(
ResponseRendererImpl.java:71)
>
>
$ResponseRenderer_10e921aa0d7.renderResponse
($ResponseRenderer_10e921aa0d7.java)
>
>
$ResponseRenderer_10e921aa0d6.renderResponse
($ResponseRenderer_10e921aa0d6.java)
>
> org.apache.tapestry.engine.PageService.service(PageService.java:68)
> $IEngineService_10e921aa142.service
($IEngineService_10e921aa142.java)
> org.apache.tapestry.services.impl.EngineServiceInnerProxy.service(
EngineServiceInnerProxy.java:77)
>
> org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(
EngineServiceOuterProxy.java:66)
>
> org.apache.tapestry.engine.AbstractEngine.service
(AbstractEngine.java
:248)
> org.apache.tapestry.services.impl.InvokeEngineTerminator.service(
InvokeEngineTerminator.java:60)
>
>
$WebRequestServicer_10e921aa11f.service
($WebRequestServicer_10e921aa11f.java)
>
>
$WebRequestServicer_10e921aa11e.service
($WebRequestServicer_10e921aa11e.java)
>
>
$WebRequestServicer_10e921aa11b.service
($WebRequestServicer_10e921aa11b.java)
>
>
$WebRequestServicer_10e921aa11a.service
($WebRequestServicer_10e921aa11a.java)
>
>
org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.se
rvice
(WebRequestServicerPipelineBridge.java:56)
>
>
$ServletRequestServicer_10e921aa101.service
($ServletRequestServicer_10e921aa101.java)
>
>
$ServletRequestServicer_10e921aa100.service
($ServletRequestServicer_10e921aa100.java)
>
> org.apache.tapestry.request.DecodedRequestInjector.service(
DecodedRequestInjector.java:55)
>
>
$ServletRequestServicerFilter_10e921aa0fd.service
($ServletRequestServicerFilter_10e921aa0fd.java)
>
>
$ServletRequestServicerFilter_10e921aa0fc.service
($ServletRequestServicerFilter_10e921aa0fc.java)
>
>
$ServletRequestServicer_10e921aa102.service
($ServletRequestServicer_10e921aa102.java)
>
> org.apache.tapestry.multipart.MultipartDecoderFilter.service(
MultipartDecoderFilter.java:52)
>
>
$ServletRequestServicerFilter_10e921aa0fb.service
($ServletRequestServicerFilter_10e921aa0fb.java)
>
>
$ServletRequestServicerFilter_10e921aa0fa.service
($ServletRequestServicerFilter_10e921aa0fa.java)
>
>
$ServletRequestServicer_10e921aa102.service
($ServletRequestServicer_10e921aa102.java)
>
> org.apache.tapestry.services.impl.SetupRequestEncoding.service(
SetupRequestEncoding.java:53)
>
>
$ServletRequestServicerFilter_10e921aa0ff.service
($ServletRequestServicerFilter_10e921aa0ff.java)
>
>
$ServletRequestServicerFilter_10e921aa0fe.service
($ServletRequestServicerFilter_10e921aa0fe.java)
>
>
$ServletRequestServicer_10e921aa102.service
($ServletRequestServicer_10e921aa102.java)
>
>
$ServletRequestServicer_10e921aa0f5.service
($ServletRequestServicer_10e921aa0f5.java)
>
>
$ServletRequestServicer_10e921aa0f4.service
($ServletRequestServicer_10e921aa0f4.java)
>
> org.apache.tapestry.ApplicationServlet.doService
(ApplicationServlet.java
:123)
>
> org.apache.tapestry.ApplicationServlet.doGet
(ApplicationServlet.java:79)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:237)
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:157)
>
> org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:214)
>
> org.apache.catalina.core.StandardValveContext.invokeNext(
StandardValveContext.java:104)
>
> org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java
:520)
> org.apache.catalina.core.StandardContextValve.invokeInternal(
StandardContextValve.java:198)
>
> org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:152)
>
> org.apache.catalina.core.StandardValveContext.invokeNext(
StandardValveContext.java:104)
>
> org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java
:520)
> org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java
:137)
>
> org.apache.catalina.core.StandardValveContext.invokeNext(
StandardValveContext.java:104)
>
> org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java
:118)
>
> org.apache.catalina.core.StandardValveContext.invokeNext(
StandardValveContext.java:102)
>
> org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java
:520)
> org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:109)
>
> org.apache.catalina.core.StandardValveContext.invokeNext(
StandardValveContext.java:104)
>
> org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java
:520)
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:
929)
> org.apache.coyote.tomcat5.CoyoteAdapter.service
(CoyoteAdapter.java:160)
> org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java
:799)
>
org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.processConnection
(Http11Protocol.java:705)
>
> org.apache.tomcat.util.net.TcpWorkerThread.runIt
(PoolTcpEndpoint.java
:577)
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:683)
>
> java.lang.Thread.run(Thread.java:613)
>
> -warner
>
> On Oct 28, 2006, at 6:34 PM, Warner Onstine wrote:
>
>> Ok, I've made that change along with some others I'm
documenting now:
>>
>> @InjectObject("engine-service:ical")
>> public abstract IEngineService getIcal();
>>
>>
>> hivemodule.xml - I realized that the service was in a sub-
package and
>> that I may need to refer to it by module name
>>
>> <contribution
>> configuration-id="tapestry.services.ApplicationServices">
>> <service name="ical"
>> object="service:eventscalendar.ICalService" />
>> </contribution>
>>
>>
>> <service-point id="ICalService"
>> interface="org.apache.tapestry.engine.IEngineService">
>> <invoke-factory model="singleton">
>> <construct
>> class="com.sourcebeat.tap101.services.ical.ICalService">
>> <set-object property="eventDAO"
>> value="spring:eventDAO"/>
>> <set-object property="linkFactory"
>> value="infrastructure:linkFactory"/>
>> </construct>
>> </invoke-factory>
>> </service-point>
>>
>> I also implemented the getLink() method to return a new link
created
>> by the linkFactory.createLink() method.
>>
>> And now I'm getting this error:
>> No engine service named '<OuterProxy for engine service
'ical'>' is
>> available.
>> Stack Trace:
>> org.apache.tapestry.services.impl.ServiceMapImpl.buildProxy(
ServiceMapImpl.java:143)
>>
>> org.apache.tapestry.services.impl.ServiceMapImpl.getService(
ServiceMapImpl.java:105)
>>
>> $ServiceMap_10e91ad4107.getService($ServiceMap_10e91ad4107.java)
>> org.apache.tapestry.engine.AbstractEngine.getService(
AbstractEngine.java:164)
>>
>> org.apache.tapestry.link.AbstractLinkComponent.getLink(
AbstractLinkComponent.java:197)
>>
>> org.apache.tapestry.link.ServiceLink.getLink(ServiceLink.java:38)
>> org.apache.tapestry.link.DefaultLinkRenderer.constructURL(
DefaultLinkRenderer.java:112)
>>
>> org.apache.tapestry.link.DefaultLinkRenderer.renderLink(
DefaultLinkRenderer.java:62)
>>
>> org.apache.tapestry.link.AbstractLinkComponent.renderComponent(
AbstractLinkComponent.java:95)
>>
>> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java
:617)
>> org.apache.tapestry.AbstractComponent.renderBody
(AbstractComponent.java
:434)
>>
>> org.apache.tapestry.components.RenderBody.renderComponent(
RenderBody.java:44)
>>
>> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java
:617)
>> org.apache.tapestry.AbstractComponent.renderBody
(AbstractComponent.java
:434)
>>
>> org.apache.tapestry.html.Body.renderComponent(Body.java:129)
>> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java
:617)
>> org.apache.tapestry.AbstractComponent.renderBody
(AbstractComponent.java
:434)
>>
>> org.apache.tapestry.html.Shell.renderComponent(Shell.java:115)
>> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java
:617)
>> org.apache.tapestry.BaseComponent.renderComponent
(BaseComponent.java
:92)
>> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java
:617)
>> org.apache.tapestry.BaseComponent.renderComponent
(BaseComponent.java
:92)
>> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java
:617)
>> org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:275)
>> org.apache.tapestry.engine.RequestCycle.renderPage
(RequestCycle.java
:366)
>>
org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse
(
ResponseRendererImpl.java:71)
>>
>>
$ResponseRenderer_10e91ad40ee.renderResponse
($ResponseRenderer_10e91ad40ee.java)
>>
>>
$ResponseRenderer_10e91ad40ed.renderResponse
($ResponseRenderer_10e91ad40ed.java)
>>
>> org.apache.tapestry.engine.PageService.service(PageService.java:
68)
>> $IEngineService_10e91ad4159.service
($IEngineService_10e91ad4159.java)
>> org.apache.tapestry.services.impl.EngineServiceInnerProxy.service(
EngineServiceInnerProxy.java:77)
>>
>> org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(
EngineServiceOuterProxy.java:66)
>>
>> org.apache.tapestry.engine.AbstractEngine.service
(AbstractEngine.java
:248)
>>
>> org.apache.tapestry.services.impl.InvokeEngineTerminator.service(
InvokeEngineTerminator.java:60)
>>
>>
$WebRequestServicer_10e91ad4136.service
($WebRequestServicer_10e91ad4136.java)
>>
>>
$WebRequestServicer_10e91ad4135.service
($WebRequestServicer_10e91ad4135.java)
>>
>>
$WebRequestServicer_10e91ad4132.service
($WebRequestServicer_10e91ad4132.java)
>>
>>
$WebRequestServicer_10e91ad4131.service
($WebRequestServicer_10e91ad4131.java)
>>
>>
org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.se
rvice
(WebRequestServicerPipelineBridge.java:56)
>>
>>
$ServletRequestServicer_10e91ad4118.service
($ServletRequestServicer_10e91ad4118.java)
>>
>>
$ServletRequestServicer_10e91ad4117.service
($ServletRequestServicer_10e91ad4117.java)
>>
>> org.apache.tapestry.request.DecodedRequestInjector.service(
DecodedRequestInjector.java:55)
>>
>>
$ServletRequestServicerFilter_10e91ad4114.service
($ServletRequestServicerFilter_10e91ad4114.java)
>>
>>
$ServletRequestServicerFilter_10e91ad4113.service
($ServletRequestServicerFilter_10e91ad4113.java)
>>
>>
$ServletRequestServicer_10e91ad4119.service
($ServletRequestServicer_10e91ad4119.java)
>>
>> org.apache.tapestry.multipart.MultipartDecoderFilter.service(
MultipartDecoderFilter.java:52)
>>
>>
$ServletRequestServicerFilter_10e91ad4112.service
($ServletRequestServicerFilter_10e91ad4112.java)
>>
>>
$ServletRequestServicerFilter_10e91ad4111.service
($ServletRequestServicerFilter_10e91ad4111.java)
>>
>>
$ServletRequestServicer_10e91ad4119.service
($ServletRequestServicer_10e91ad4119.java)
>>
>> org.apache.tapestry.services.impl.SetupRequestEncoding.service(
SetupRequestEncoding.java:53)
>>
>>
$ServletRequestServicerFilter_10e91ad4116.service
($ServletRequestServicerFilter_10e91ad4116.java)
>>
>>
$ServletRequestServicerFilter_10e91ad4115.service
($ServletRequestServicerFilter_10e91ad4115.java)
>>
>>
$ServletRequestServicer_10e91ad4119.service
($ServletRequestServicer_10e91ad4119.java)
>>
>>
$ServletRequestServicer_10e91ad410c.service
($ServletRequestServicer_10e91ad410c.java)
>>
>>
$ServletRequestServicer_10e91ad410b.service
($ServletRequestServicer_10e91ad410b.java)
>>
>> org.apache.tapestry.ApplicationServlet.doService(
ApplicationServlet.java:123)
>>
>> org.apache.tapestry.ApplicationServlet.doGet
(ApplicationServlet.java
:79)
>> javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:237)
>>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:157)
>>
>> org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:214)
>>
>> org.apache.catalina.core.StandardValveContext.invokeNext(
StandardValveContext.java:104)
>>
>> org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java
:520)
>>
>> org.apache.catalina.core.StandardContextValve.invokeInternal(
StandardContextValve.java:198)
>>
>> org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:152)
>>
>> org.apache.catalina.core.StandardValveContext.invokeNext(
StandardValveContext.java:104)
>>
>> org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java
:520)
>>
>> org.apache.catalina.core.StandardHostValve.invoke(
StandardHostValve.java:137)
>>
>> org.apache.catalina.core.StandardValveContext.invokeNext(
StandardValveContext.java:104)
>>
>> org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java:118)
>>
>> org.apache.catalina.core.StandardValveContext.invokeNext(
StandardValveContext.java:102)
>>
>> org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java
:520)
>>
>> org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:109)
>>
>> org.apache.catalina.core.StandardValveContext.invokeNext(
StandardValveContext.java:104)
>>
>> org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java
:520)
>>
>> org.apache.catalina.core.ContainerBase.invoke
(ContainerBase.java:929)
>> org.apache.coyote.tomcat5.CoyoteAdapter.service
(CoyoteAdapter.java:160)
>> org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java
:799)
>>
>>
org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.processConnection
(Http11Protocol.java:705)
>>
>> org.apache.tomcat.util.net.TcpWorkerThread.runIt
(PoolTcpEndpoint.java
:577)
>>
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:683)
>>
>> java.lang.Thread.run(Thread.java:613)
>>
>> -warner
>>
>> On Oct 28, 2006, at 5:27 PM, Howard Lewis Ship wrote:
>>
>>> Try changing to:
>>>
>>> @InjectObject("engine-service:ical")
>>> public abstract IEngineService getIcal();
>>>
>>>
>>> On 10/28/06, Warner Onstine <[EMAIL PROTECTED]> wrote:
>>>>
>>>> Ok,
>>>> I've updated the getName():
>>>> public String getName() {
>>>> return "ical";
>>>> }
>>>> which now matches the definition in the hivemodule.xml:
>>>> <contribution configuration-id="
>>>> tapestry.services.ApplicationServices">
>>>> <service name="ical"
object="service:ICalService" />
>>>> </contribution>
>>>>
>>>>
>>>> <service-point id="ICalService"
>>>>
interface="org.apache.tapestry.engine.IEngineService
">
>>>> <invoke-factory model="singleton">
>>>> <construct class="ICalService">
>>>> <set-object property="eventDAO"
>>>> value="spring:eventDAO"/>
>>>> </construct>
>>>> </invoke-factory>
>>>> </service-point>
>>>>
>>>> When I hit UpcomingEvents.html I still get the stack trace and
>>>> nothing in the console (catalina.out) about the service being
>>>> discarded.
>>>>
>>>> Here is the complete stack trace:
>>>>
>>>> No engine service named '<SingletonProxy for
>>>> eventscalendar.ICalService
(org.apache.tapestry.engine.IEngineService)
>>>> >' is available.
>>>>
>>>> Stack Trace:
>>>> org.apache.tapestry.services.impl.ServiceMapImpl.buildProxy
>>>> (ServiceMapImpl.java:143)
>>>> org.apache.tapestry.services.impl.ServiceMapImpl.getService
>>>> (ServiceMapImpl.java:105)
>>>> $ServiceMap_10e90805ee1.getService($ServiceMap_10e90805ee1.java)
>>>> org.apache.tapestry.engine.AbstractEngine.getService
>>>> (AbstractEngine.java:164)
>>>> org.apache.tapestry.link.AbstractLinkComponent.getLink
>>>> (AbstractLinkComponent.java:197)
>>>> org.apache.tapestry.link.ServiceLink.getLink(ServiceLink.java:
38)
>>>> org.apache.tapestry.link.DefaultLinkRenderer.constructURL
>>>> (DefaultLinkRenderer.java:112)
>>>> org.apache.tapestry.link.DefaultLinkRenderer.renderLink
>>>> (DefaultLinkRenderer.java:62)
>>>> org.apache.tapestry.link.AbstractLinkComponent.renderComponent
>>>> (AbstractLinkComponent.java:95)
>>>> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java
:617)
>>>>
>>>> org.apache.tapestry.AbstractComponent.renderBody
>>>> (AbstractComponent.java:434)
>>>> org.apache.tapestry.components.RenderBody.renderComponent
>>>> (RenderBody.java:44)
>>>> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java
:617)
>>>>
>>>> org.apache.tapestry.AbstractComponent.renderBody
>>>> (AbstractComponent.java:434)
>>>> org.apache.tapestry.html.Body.renderComponent(Body.java:129)
>>>> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java
:617)
>>>>
>>>> org.apache.tapestry.AbstractComponent.renderBody
>>>> (AbstractComponent.java:434)
>>>> org.apache.tapestry.html.Shell.renderComponent(Shell.java:115)
>>>> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java
:617)
>>>>
>>>> org.apache.tapestry.BaseComponent.renderComponent
(BaseComponent.java
:92)
>>>>
>>>> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java
:617)
>>>>
>>>> org.apache.tapestry.BaseComponent.renderComponent
(BaseComponent.java
:92)
>>>>
>>>> org.apache.tapestry.AbstractComponent.render
(AbstractComponent.java
:617)
>>>>
>>>> org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:
275)
>>>> org.apache.tapestry.engine.RequestCycle.renderPage
(RequestCycle.java:
>>>> 366)
>>>>
org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse
>>>> (ResponseRendererImpl.java:71)
>>>> $ResponseRenderer_10e90805ec8.renderResponse
>>>> ($ResponseRenderer_10e90805ec8.java)
>>>> $ResponseRenderer_10e90805ec7.renderResponse
>>>> ($ResponseRenderer_10e90805ec7.java)
>>>> org.apache.tapestry.engine.HomeService.service
(HomeService.java:65)
>>>> $IEngineService_10e90805f2d.service
($IEngineService_10e90805f2d.java)
>>>>
org.apache.tapestry.services.impl.EngineServiceInnerProxy.service
>>>> (EngineServiceInnerProxy.java:77)
>>>>
org.apache.tapestry.services.impl.EngineServiceOuterProxy.service
>>>> (EngineServiceOuterProxy.java:66)
>>>> org.apache.tapestry.engine.AbstractEngine.service
(AbstractEngine.java
:
>>>> 248)
>>>> org.apache.tapestry.services.impl.InvokeEngineTerminator.service
>>>> (InvokeEngineTerminator.java:60)
>>>> $WebRequestServicer_10e90805f10.service
>>>> ($WebRequestServicer_10e90805f10.java)
>>>> $WebRequestServicer_10e90805f0f.service
>>>> ($WebRequestServicer_10e90805f0f.java)
>>>> $WebRequestServicer_10e90805f0c.service
>>>> ($WebRequestServicer_10e90805f0c.java)
>>>> $WebRequestServicer_10e90805f0b.service
>>>> ($WebRequestServicer_10e90805f0b.java)
>>>>
org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.se
rvi
>>>>
>>>> ce(WebRequestServicerPipelineBridge.java:56)
>>>> $ServletRequestServicer_10e90805ef2.service
>>>> ($ServletRequestServicer_10e90805ef2.java)
>>>> $ServletRequestServicer_10e90805ef1.service
>>>> ($ServletRequestServicer_10e90805ef1.java)
>>>> org.apache.tapestry.request.DecodedRequestInjector.service
>>>> (DecodedRequestInjector.java:55)
>>>> $ServletRequestServicerFilter_10e90805eee.service
>>>> ($ServletRequestServicerFilter_10e90805eee.java)
>>>> $ServletRequestServicerFilter_10e90805eed.service
>>>> ($ServletRequestServicerFilter_10e90805eed.java)
>>>> $ServletRequestServicer_10e90805ef3.service
>>>> ($ServletRequestServicer_10e90805ef3.java)
>>>> org.apache.tapestry.multipart.MultipartDecoderFilter.service
>>>> (MultipartDecoderFilter.java:52)
>>>> $ServletRequestServicerFilter_10e90805eec.service
>>>> ($ServletRequestServicerFilter_10e90805eec.java)
>>>> $ServletRequestServicerFilter_10e90805eeb.service
>>>> ($ServletRequestServicerFilter_10e90805eeb.java)
>>>> $ServletRequestServicer_10e90805ef3.service
>>>> ($ServletRequestServicer_10e90805ef3.java)
>>>> org.apache.tapestry.services.impl.SetupRequestEncoding.service
>>>> (SetupRequestEncoding.java:53)
>>>> $ServletRequestServicerFilter_10e90805ef0.service
>>>> ($ServletRequestServicerFilter_10e90805ef0.java)
>>>> $ServletRequestServicerFilter_10e90805eef.service
>>>> ($ServletRequestServicerFilter_10e90805eef.java)
>>>> $ServletRequestServicer_10e90805ef3.service
>>>> ($ServletRequestServicer_10e90805ef3.java)
>>>> $ServletRequestServicer_10e90805ee6.service
>>>> ($ServletRequestServicer_10e90805ee6.java)
>>>> $ServletRequestServicer_10e90805ee5.service
>>>> ($ServletRequestServicer_10e90805ee5.java)
>>>> org.apache.tapestry.ApplicationServlet.doService
>>>> (ApplicationServlet.java:123)
>>>> org.apache.tapestry.ApplicationServlet.doGet
(ApplicationServlet.java
:79)
>>>>
>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
>>>> (ApplicationFilterChain.java:237)
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter
>>>> (ApplicationFilterChain.java:157)
>>>> org.apache.catalina.core.StandardWrapperValve.invoke
>>>> (StandardWrapperValve.java:214)
>>>> org.apache.catalina.core.StandardValveContext.invokeNext
>>>> (StandardValveContext.java:104)
>>>> org.apache.catalina.core.StandardPipeline.invoke
>>>> (StandardPipeline.java:520)
>>>> org.apache.catalina.core.StandardContextValve.invokeInternal
>>>> (StandardContextValve.java:198)
>>>> org.apache.catalina.core.StandardContextValve.invoke
>>>> (StandardContextValve.java:152)
>>>> org.apache.catalina.core.StandardValveContext.invokeNext
>>>> (StandardValveContext.java:104)
>>>> org.apache.catalina.core.StandardPipeline.invoke
>>>> (StandardPipeline.java:520)
>>>> org.apache.catalina.core.StandardHostValve.invoke
>>>> (StandardHostValve.java:137)
>>>> org.apache.catalina.core.StandardValveContext.invokeNext
>>>> (StandardValveContext.java:104)
>>>> org.apache.catalina.valves.ErrorReportValve.invoke
>>>> (ErrorReportValve.java:118)
>>>> org.apache.catalina.core.StandardValveContext.invokeNext
>>>> (StandardValveContext.java:102)
>>>> org.apache.catalina.core.StandardPipeline.invoke
>>>> (StandardPipeline.java:520)
>>>> org.apache.catalina.core.StandardEngineValve.invoke
>>>> (StandardEngineValve.java:109)
>>>> org.apache.catalina.core.StandardValveContext.invokeNext
>>>> (StandardValveContext.java:104)
>>>> org.apache.catalina.core.StandardPipeline.invoke
>>>> (StandardPipeline.java:520)
>>>> org.apache.catalina.core.ContainerBase.invoke
(ContainerBase.java:929)
>>>> org.apache.coyote.tomcat5.CoyoteAdapter.service
(CoyoteAdapter.java
:160)
>>>> org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java
:
>>>> 799)
>>>> org.apache.coyote.http11.Http11Protocol
>>>> $Http11ConnectionHandler.processConnection
(Http11Protocol.java:705)
>>>> org.apache.tomcat.util.net.TcpWorkerThread.runIt
(PoolTcpEndpoint.java
:
>>>> 577)
>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
>>>> (ThreadPool.java:683)
>>>> java.lang.Thread.run(Thread.java:613)
>>>>
>>>> UpcomingEvents.java (should be the important bits):
>>>>
>>>> @InjectObject("service:eventscalendar.ICalService")
>>>> public abstract IEngineService getIcal();
>>>>
>>>> public ICalService.CalendarType getCalendarType() {
>>>> return CalendarType.Week;
>>>> }
>>>>
>>>> Let me know if you need more.
>>>>
>>>> -warner
>>>>
>>>> On Oct 28, 2006, at 10:02 AM, Howard Lewis Ship wrote:
>>>>
>>>> > Also, check the console, there should be a log error.
>>>> >
>>>> > My current theory: service "ical" was discarded because
the names
>>>> > didn't
>>>> > match AND the code that outputs the "missing engine
service" error
>>>> > message
>>>> > is broken.
>>>> >
>>>> > On 10/28/06, Howard Lewis Ship <[EMAIL PROTECTED]> wrote:
>>>> >>
>>>> >> First problem I see:
>>>> >>
>>>> >> hivemodule.xml:
>>>> >> <service name="ical" object="service:ICalService" />
>>>> >>
>>>> >> public String getName() {
>>>> >> return "ICalService";
>>>> >> }
>>>> >>
>>>> >> These need to be the same string. Tapestry is checking
that the
>>>> >> engine
>>>> >> service knows its own name, in case it generates any links.
>>>> >>
>>>> >> I don't think that's your root problem.
>>>> >>
>>>> >> I need to see the code from UpcomingEvents.java and a
readable
and
>>>> >> complete stack trace.
>>>> >>
>>>> >> On 10/27/06, Warner Onstine <[EMAIL PROTECTED]>
wrote:
>>>> >> >
>>>> >> > Hi all,
>>>> >> > I'm having some difficulties injecting a service, when I
reference
>>>> >> > the service through a @ServiceLink I get this exception:
>>>> >> > org.apache.hivemind.ApplicationRuntimeException
>>>> >> > No engine service named '<SingletonProxy for
>>>> >> > eventscalendar.ICalService
>>>> >> (org.apache.tapestry.engine.IEngineService)>'
>>>> >> > is available.
>>>> >> > Stack Trace:
>>>> >> >
>>>> >> > *
>>>> >> > org.apache.tapestry.services.impl.ServiceMapImpl.buildProxy
>>>> >> (ServiceMapIm
>>>> >> > pl.java:143)
>>>> >> > *
>>>> >> > org.apache.tapestry.services.impl.ServiceMapImpl.getService
>>>> >> (ServiceMapIm
>>>> >> > pl.java:105)
>>>> >> > * $ServiceMap_10e8b71c9d5.getService
>>>> >> ($ServiceMap_10e8b71c9d5.java)
>>>> >> > *
>>>> >> > org.apache.tapestry.engine.AbstractEngine.getService (
>>>> >> > AbstractEngine.java
>>>> >> > :164)
>>>> >> > *
>>>> >> > org.apache.tapestry.link.AbstractLinkComponent.getLink
>>>> >> (AbstractLinkCompo
>>>> >> > nent.java:197)
>>>> >> > * org.apache.tapestry.link.ServiceLink.getLink
>>>> >> (ServiceLink.java:38)
>>>> >> > *
>>>> >> > org.apache.tapestry.link.DefaultLinkRenderer.constructURL
>>>> >> (DefaultLinkRen
>>>> >> > derer.java:112)
>>>> >> > *
>>>> >> > org.apache.tapestry.link.DefaultLinkRenderer.renderLink
>>>> >> (DefaultLinkRende
>>>> >> > rer.java:62)
>>>> >> >
>>>> >> >
>>>> >> > Here is my setup:
>>>> >> > hivemodule.xml
>>>> >> > <module id="eventscalendar" version="4.0.0"
>>>> >> > package="com.sourcebeat.tap101.services">
>>>> >> > <contribution configuration-
>>>> >> > id="tapestry.services.ApplicationServices ">
>>>> >> > <service name="ical"
>>>> >> object="service:ICalService" />
>>>> >> > </contribution>
>>>> >> >
>>>> >> >
>>>> >> > <service-point id="ICalService"
>>>> >> > interface="
>>>> >> org.apache.tapestry.engine.IEngineService">
>>>> >> > <invoke-factory model="singleton">
>>>> >> > <construct class="ICalService">
>>>> >> > <set-object
property="eventDAO"
>>>> >> > value="spring:eventDAO"/>
>>>> >> > </construct>
>>>> >> > </invoke-factory>
>>>> >> > </service-point>
>>>> >> > </module>
>>>> >> >
>>>> >> > UpcomingEvents.java (all but the injection ommitted)
>>>> >> > @InjectObject("service: eventscalendar.ICalService")
>>>> >> > public abstract IEngineService getIcal();
>>>> >> >
>>>> >> > UpcomingEvents.html (servicelink call)
>>>> >> > <a href="WeeksEvents.ics" jwcid="@ServiceLink"
service="ognl:ical"
>>>> >> > parameters="ognl:calendarType"/>
>>>> >> >
>>>> >> > Now one thing I'm not sure on is my service implements the
>>>> >> > IEngineService but it returns null on the getLink(), I
don't
>>>> >> know if
>>>> >> > this is the root cause of the error or not. But I
thought I'd
>>>> shoot
>>>> >> > this off before testing that theory out.
>>>> >> >
>>>> >> >
>>>> >>
>>>>
---------------------------------------------------------------------
>>>> >> > To unsubscribe, e-mail: users-
[EMAIL PROTECTED]
>>>> >> > For additional commands, e-mail: users-
[EMAIL PROTECTED]
>>>> >> >
>>>> >> >
>>>> >>
>>>> >>
>>>> >> --
>>>> >> Howard M. Lewis Ship
>>>> >> TWD Consulting, Inc.
>>>> >> Independent J2EE / Open-Source Java Consultant
>>>> >> Creator and PMC Chair, Apache Tapestry
>>>> >> Creator, Apache HiveMind
>>>> >>
>>>> >> Professional Tapestry training, mentoring, support
>>>> >> and project work. http://howardlewisship.com
>>>> >
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > Howard M. Lewis Ship
>>>> > TWD Consulting, Inc.
>>>> > Independent J2EE / Open-Source Java Consultant
>>>> > Creator and PMC Chair, Apache Tapestry
>>>> > Creator, Apache HiveMind
>>>> >
>>>> > Professional Tapestry training, mentoring, support
>>>> > and project work. http://howardlewisship.com
>>>>
>>>>
>>>>
---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>
>>>>
>>>
>>>
>>> --Howard M. Lewis Ship
>>> TWD Consulting, Inc.
>>> Independent J2EE / Open-Source Java Consultant
>>> Creator and PMC Chair, Apache Tapestry
>>> Creator, Apache HiveMind
>>>
>>> Professional Tapestry training, mentoring, support
>>> and project work. http://howardlewisship.com
>>
>>
>>
---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]