Trying giving it the binding : <binding name="service" value="literal:pdf" />
instead. (the literal should be the service name of your service as it is defined in your hivemind configuration contribution ) On 3/23/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
I' trying to convert an old, pre 3.0 tapestry application to T4.1. Although it's quite some work, most of it goes smoothly. However, I have an external service called "Pdf", and it doesn't work at all. Basically, when I'm trying to render a page containing a link to the service I get the message "No engine service named '<SingletonProxy for net.kolmodin.yalt.Pdf(org.apache.tapestry.engine.IEngineService)>' is available. This has now taken a looong time, and I'm just stuck :-( Some bits out of this: The component being rendered: <component id="pdfLink" type="ServiceLink"> <binding name="service" value="hivemind:service:net.kolmodin.yalt.Pdf" /> <binding name="title" value="message:pdfTip"/> <binding name="parameters" value="ognl:page.layoutId" /> </component> hivemodule.xml: <contribution configuration-id="tapestry.services.ApplicationServices"> <service name="pdf" object="service:Pdf"/> </contribution> <service-point id="Pdf" interface="org.apache.tapestry.engine.IEngineService"> <invoke-factory> <construct class="net.kolmodin.yalt.list.PdfFormatService"> <set-object property="response" value="tapestry.globals.response"/> <set-object property="request" value="tapestry.globals.request"/> <set-object property="linkFactory" value="infrastructure:linkFactory"/> </construct> </invoke-factory> The service is a little too big for this message. It's getName() returns 'pdf', though, and it does implement IEngineService according to the compiler. I have inserted log statements in the getLink method, but it obviously crashes before this call. One possible problem is that the service is a concrete class called PdfFormatService, inheriting a lot of properties from the abstract FormatService. Are there any limitations in such a scenario in the hivemind reflection code? A grep in the log (which logs all DEBUG messages) shows that the missing SingletonProxy has been created. 2007-03-23 15:19:12,332 [main] DEBUG org.apache.hivemind.impl.RegistryBuilder - Creating service point net.kolmodin.yalt.Pdf 2007-03-23 15:19:12,332 [main] DEBUG org.apache.hivemind.impl.RegistryBuilder - Adding InvokeFactoryDescriptor[factoryServiceId=hivemind.BuilderFactory parameters=[ElementImpl[elementName=construct attributes=[AttributeImpl[name=class value=net.kolmodin.yalt.list.PdfFormatService]] elements=null content=]] serviceModel=singleton] to service extension point net.kolmodin.yalt.Pdf 2007-03-23 15:19:12,332 [main] DEBUG org.apache.hivemind.impl.RegistryBuilder - Adding InterceptorDescriptor[factoryServiceId=hivemind.LoggingInterceptor parameters=null before=null after=null name=null] to service extension point net.kolmodin.yalt.Pdf 2007-03-23 15:19:18,078 [http-8080-Processor25] DEBUG net.kolmodin.yalt.Pdf - Creating SingletonProxy for service net.kolmodin.yalt.Pdf 2007-03-23 15:19:35,732 [http-8080-Processor25] DEBUG org.apache.tapestry.engine.RequestCycle - Set attribute org.apache.tapestry.active-link-component to [EMAIL PROTECTED]/pdfLink] org.apache.hivemind.ApplicationRuntimeException: No engine service named '<SingletonProxy for net.kolmodin.yalt.Pdf(org.apache.tapestry.engine.IEngineService)>' is available. ~ ~ ~ The top of the stack trace: #org.apache.tapestry.services.impl.ServiceMapImpl.buildProxy(ServiceMapImpl.java:143) #org.apache.tapestry.services.impl.ServiceMapImpl.getService(ServiceMapImpl.java:105) #$ServiceMap_1117f2a5533.getService($ServiceMap_1117f2a5533.java) #org.apache.tapestry.link.ServiceLink.getLink(ServiceLink.java:38) Any hints out there? --Alec --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Jesse Kuhnert Tapestry/Dojo team member/developer Open source based consulting work centered around dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]