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.servi
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]