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: [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
>
>
>
>
> --
> 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]