Your service ID is not the same as your class name.  Try: 

    <contribution
configuration-id="tapestry.services.ApplicationServices">
        <service name="bip" object="service:BipService"/>
    </contribution>

jeff
-----Original Message-----
From: Ryan Cuprak [mailto:[EMAIL PROTECTED] 
Sent: Thursday, June 29, 2006 1:47 PM
To: Tapestry users
Subject: Re: File download - LinkFactory not being set (statup exception
now)

 
Tweaked my hivemodule.xml to the following:
    <service-point id="BipService"
interface="org.apache.tapestry.engine.IEngineService">
        <invoke-factory>
            <construct class="com.kodak.mis.web.engine.BipService">
                <set-object property="linkFactory"
value="service:tapestry.url.LinkFactory"/>
            </construct>
        </invoke-factory>
    </service-point>

    <contribution
configuration-id="tapestry.services.ApplicationServices">
        <service name="bip"
object="service:com.kodak.mis.web.engine.BipService"/>
    </contribution>

 Changed contribution/service/object from instance:... to service:....
Thought that simple fix would resolve it, however I now get:
 javax.servlet.ServletException: Unable to construct service
tapestry.asset.ClasspathAssetFactory: Error building service
tapestry.asset.ClasspathAssetFactory: Error at
jar:file:/C:/Documents%20and%20Settings/l507107/My%20Documents/Projects/
MI_4.5/Source/Kodak_MI/Java/webapps/admin/WEB-INF/lib/tapestry-4.0.2.jar
!/META-INF/tapestry.asset.xml, line 81, column 75: Unable to construct
service tapestry.services.ServiceMap: Error building service
tapestry.services.ServiceMap: Error at
jar:file:/C:/Documents%20and%20Settings/l507107/My%20Documents/Projects/
MI_4.5/Source/Kodak_MI/Java/webapps/admin/WEB-INF/lib/tapestry-4.0.2.jar
!/META-INF/tapestry.services.xml, line 166, column 75: Unable to
initialize service tapestry.services.ServiceMap (by invoking method
initializeService on org.apache.tapestry.services.impl.ServiceMapImpl):
Unable to construct configuration tapestry.services.ApplicationServices:
Error at context:/WEB-INF/hivemodule.xml, line 110, column 83: Unable to
process attribute object (of element service): Service point
com.kodak.mis.web.engine.BipService does not exist.
        
org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.servi
ce(WebRequestServicerPipelineBridge.java:60)
        
$ServletRequestServicer_10c2186bf14.service($ServletRequestServicer_10c2
186bf14.java)
        
$ServletRequestServicer_10c2186bf13.service($ServletRequestServicer_10c2
186bf13.java)
        
org.apache.tapestry.request.DecodedRequestInjector.service(DecodedReques
tInjector.java:55)
        
$ServletRequestServicerFilter_10c2186bf10.service($ServletRequestService
rFilter_10c2186bf10.java)
        
$ServletRequestServicerFilter_10c2186bf0f.service($ServletRequestService
rFilter_10c2186bf0f.java)
        
$ServletRequestServicer_10c2186bf15.service($ServletRequestServicer_10c2
186bf15.java)
        
org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDe
coderFilter.java:52)
        
$ServletRequestServicerFilter_10c2186bf0e.service($ServletRequestService
rFilter_10c2186bf0e.java)
        
$ServletRequestServicerFilter_10c2186bf0d.service($ServletRequestService
rFilter_10c2186bf0d.java)
        
$ServletRequestServicer_10c2186bf15.service($ServletRequestServicer_10c2
186bf15.java)
        
org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequ
estEncoding.java:53)
        
$ServletRequestServicerFilter_10c2186bf12.service($ServletRequestService
rFilter_10c2186bf12.java)
        
$ServletRequestServicerFilter_10c2186bf11.service($ServletRequestService
rFilter_10c2186bf11.java)
        
$ServletRequestServicer_10c2186bf15.service($ServletRequestServicer_10c2
186bf15.java)
        
$ServletRequestServicer_10c2186bf08.service($ServletRequestServicer_10c2
186bf08.java)
        
$ServletRequestServicer_10c2186bf07.service($ServletRequestServicer_10c2
186bf07.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)

 My class is compiled and deinitely in the classpath. If I remove:
     <contribution
configuration-id="tapestry.services.ApplicationServices">
        <service name="bip"
object="service:com.kodak.mis.web.engine.BipService"/>
    </contribution>

 then it reads everything in ok but the page which uses this
engine/service doesn't work.

 Any pointers on what I am missing? 


 -Ryan

On Thursday, June 29, 2006, at 01:35PM, Ryan Cuprak <[EMAIL PROTECTED]>
wrote:

>
>Hello,
> I am working my way through the "Handling File Downloads and Uploads"
chapter in the "Enjoying Web Development" book however I am crashing
into a brick wall.
> The setter for the LinkFactory is never being called thus resulting in
a null pointer exception.
>
> hivemodule.xml snippet:
>     <service-point id="BipService"
interface="org.apache.tapestry.engine.IEngineService">
>        <invoke-factory>
>            <construct class="com.kodak.mis.web.engine.BipService">
>                <set-object property="linkFactory"
value="service:tapestry.url.LinkFactory"/>
>            </construct>
>        </invoke-factory>
>    </service-point>
>
>    <contribution
configuration-id="tapestry.services.ApplicationServices">
>        <service name="BipService"
object="instance:com.kodak.mis.web.engine.BipService"/>
>    </contribution>
>
> Code snippet:
>public class BipService implements IEngineService {
>
>    private static final Logger logger =
Logger.getLogger(BipService.class);
>
>    private LinkFactory _linkFactory;
>
>    public void setLinkFactory(LinkFactory linkFactory) {
>        if(logger.isDebugEnabled())logger.debug("Link factory called: "
+ linkFactory);
>        _linkFactory = linkFactory;
>    }
>
>    public ILink getLink(boolean post, Object parameter) {
>        Map parameters = new HashMap();
>        if(logger.isDebugEnabled()) logger.debug("link factory is null
" + (_linkFactory == null) );
>        return _linkFactory.constructLink(this,post,parameters,false);
>    }
>
> It is always null. For the 'set-object' line I can enter complete
garbage for the value and it won't complain!
>
> Am I missing something??
>
> Thanks!
> Ryan
>
>---------------------------------------------------------------------
>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]

Reply via email to