Hi
I have a composite component which has an errorWidget subcomponent. (It
is specified with annotation cause I need inheritance.)
So the class contains the following definition:
@ComponentClass
public abstract class MyComponent extends BaseComponent {
@Component(type="ErrorWidget", bindings={...})
public abstract ErrorWidget getErrorWidget();
...
}
MyComponent is in a library called "mylib1". I'd like to use it in
application namespace, "mylib1" and "mylib2" libraries.
Library references are set (and works fine) but when I insert the
component in more than one libraries, I've got the following exception:
Component [EMAIL PROTECTED]/$Header.$MyComponent] does not
contain a component errorWidget.
org.apache.tapestry.AbstractComponent.getComponent(AbstractComponent.java:360)
org.apache.tapestry.TapestryUtils.getComponent(TapestryUtils.java:317)
$MyComponent_21.finishLoad($MyComponent_21.java)
org.apache.tapestry.pageload.PageLoader.constructComponent(PageLoader.java:425)
org.apache.tapestry.pageload.PageLoader.createImplicitComponent(PageLoader.java:478)
$IPageLoader_1102ba8eb36.createImplicitComponent($IPageLoader_1102ba8eb36.java)
$IPageLoader_1102ba8eb37.createImplicitComponent($IPageLoader_1102ba8eb37.java)
org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.createImplicitComponent(ComponentTemplateLoaderLogic.java:218)
org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.process(ComponentTemplateLoaderLogic.java:172)
org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.process(ComponentTemplateLoaderLogic.java:111)
org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.loadTemplate(ComponentTemplateLoaderLogic.java:88)
org.apache.tapestry.services.impl.ComponentTemplateLoaderImpl.loadTemplate(ComponentTemplateLoaderImpl.java:61)
$ComponentTemplateLoader_1102ba8eb40.loadTemplate($ComponentTemplateLoader_1102ba8eb40.java)
org.apache.tapestry.pageload.PageLoader.loadTemplateForComponent(PageLoader.java:637)
org.apache.tapestry.BaseComponent.readTemplate(BaseComponent.java:77)
org.apache.tapestry.BaseComponent.finishLoad(BaseComponent.java:107)
$Header_8.finishLoad($Header_8.java)
org.apache.tapestry.pageload.PageLoader.constructComponent(PageLoader.java:425)
org.apache.tapestry.pageload.PageLoader.createImplicitComponent(PageLoader.java:478)
$IPageLoader_1102ba8eb36.createImplicitComponent($IPageLoader_1102ba8eb36.java)
$IPageLoader_1102ba8eb37.createImplicitComponent($IPageLoader_1102ba8eb37.java)
org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.createImplicitComponent(ComponentTemplateLoaderLogic.java:218)
org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.process(ComponentTemplateLoaderLogic.java:172)
org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.process(ComponentTemplateLoaderLogic.java:111)
org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.loadTemplate(ComponentTemplateLoaderLogic.java:88)
org.apache.tapestry.services.impl.ComponentTemplateLoaderImpl.loadTemplate(ComponentTemplateLoaderImpl.java:61)
$ComponentTemplateLoader_1102ba8eb40.loadTemplate($ComponentTemplateLoader_1102ba8eb40.java)
org.apache.tapestry.pageload.PageLoader.loadTemplateForComponent(PageLoader.java:637)
org.apache.tapestry.BaseComponent.readTemplate(BaseComponent.java:77)
org.apache.tapestry.BaseComponent.finishLoad(BaseComponent.java:107)
$BasePage_0.finishLoad($BasePage_0.java)
Tapestry finds the subcomponent in mylib1, mylib1.mylib1 and
mylib2.mylib1 namespaces (after using in application, mylib1 and mylib2
libraries). If I use the component only in one library, it works fine
but using in more libraries it cannot resolve the component.
I think Tapestry creates the subcomponent in the first namespace and
cannot find it in other namespaces.
Have you any idea how can I solve that problem?
Thanks
--
JoeB
PS: my environment: Tapestry 4.1.1 and Java 6.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]