Thanks Barry, the squeezer now works, but now I am having problem passing the object to and from component on the page. Becouse the error is so weird, I conclude something is wrong with component parametrs not being properly handled. It works without the component. Page includes component
<component id="categoryBox" type="CategoryBox"> <binding name="category" value="category"/> <binding name="children" value="children"/> <binding name="listener" value="listeners.onClickCategory"/> </component> The component gets a list (children) which are value objects registered for squeezing and their parent (category - also the same type) and should display a list of their names. When a child category is clicked the component sends a message through listener to the page that contains it to invoke public IPage onClickCategory(CategoryVO categoryVO) { WizardStep2 wizardStep2 = getWizardStep2Page(); wizardStep2.setCategory(categoryVO); return (IPage) wizardStep2; } which should display children's children, but instead I am getting the Could not load class com.package.ClassName from WebappClassLoader delegate: false repositories: /WEB-INF/classes/ ----------> Parent Classloader: [EMAIL PROTECTED] : com.package.ClassName In my public Collection getChildren() { logger.info("get children of " + getCategory()); Collection children = getManager().getChildren(getCategory(), null); logger.info("= " + children); return children; } page class method getCategory() returns null. The setter and getter are defined abstract public CategoryVO getCategory(); abstract public void setCategory(CategoryVO categoryVO); Advice appreciated! 2006/9/6, Barry Books <[EMAIL PROTECTED]>:
Here is mine. Just add the state manager as a property and pull out what you need. public Object unsqueeze(DataSqueezer squeezer, String string) { try { Repository repository = (Repository) stateManager.get("repository"); User user = (User) stateManager.get("user"); return repository.select(user, new Long( string.substring(1))); } catch (NumberFormatException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } private ApplicationStateManager stateManager; public void setStateManager(ApplicationStateManager stateManager) { this.stateManager = stateManager; } } <contribution configuration-id="tapestry.state.ApplicationObjects"> <state-object name="user" scope="session"> <create-instance class="com.trsvax.mill.baseobject.party.User"/> </state-object> </contribution> <contribution configuration-id="tapestry.data.SqueezeAdaptors"> <adaptor object="service:millSqueezer"/> </contribution> <service-point interface="com.trsvax.mill.MillSqueezer" id="millSqueezer"> <invoke-factory> <construct class="com.trsvax.mill.MillSqueezer"> <set-object property="stateManager" value="infrastructure:applicationStateManager"/> </construct> </invoke-factory> </service-point> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]