zkoss / zkspring

Automatically exported from code.google.com/p/zkspring
6 stars 15 forks source link

error using zkspring-annot component-scan #10

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
reposted from old ZK Spring SF project tracker
https://sourceforge.net/tracker/?func=detail&aid=3071794&group_id=152762&atid=78
5191

zkspring-core 3.0RC
spring 3.0.4.RELEASE

the following spring configuration fails with the exception below.
reason: there is no zkspring-annot anymore and zkspring-core does not provide 
any information about handler and schemas in META-INF nor
does define 'component-scan' in it's namespace.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:zksp="http://www.zkoss.org/2008/zkspring/core"
xmlns:zksp-annot="http://www.zkoss.org/2008/zkspring-annot"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"   
xsi:schemaLocation="
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.0.xsd    
http://www.zkoss.org/2008/zkspring/core 
http://www.zkoss.org/2008/zkspring/core/zkspring-core.xsd
http://www.zkoss.org/2008/zkspring-annot 
http://www.zkoss.org/2008/zkspring-annot/zkspring-annot.xsd">

<zksp:zk-config/>

<!-- config via Annotations -->
<zksp-annot:component-scan base-package="sample.webclient.controller"/> 

</beans> 

2010-09-20 12:16:16,252 [main ] ERROR o.s.web.context.ContextLoader 
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: 
Configuration problem: Unable to locate Spring NamespaceHandler for XML schema 
namespace [http://www.zkoss.org/2008/zkspring-annot]
Offending resource: class path resource [zk-beans.xml]

at 
org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFast
ProblemReporter.java:68)
at 
org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java
:85)
at 
org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java
:80)
at 
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDef
initionParserDelegate.java:284)
at 
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomEl
ement(BeanDefinitionParserDelegate.java:1332)
at 
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomEl
ement(BeanDefinitionParserDelegate.java:1325)
at 
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseB
eanDefinitions(DefaultBeanDefinitionDocumentReader.java:135)
at 
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.regist
erBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:93)
at 
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefini
tions(XmlBeanDefinitionReader.java:493)
at 
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefiniti
ons(XmlBeanDefinitionReader.java:390)
at 
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinition
s(XmlBeanDefinitionReader.java:334)
at 
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinition
s(XmlBeanDefinitionReader.java:302)
at 
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanD
efinitions(AbstractBeanDefinitionReader.java:143)
at 
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanD
efinitions(AbstractBeanDefinitionReader.java:178)
at 
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanD
efinitions(AbstractBeanDefinitionReader.java:149)
at 
org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinit
ions(XmlWebApplicationContext.java:124)
at 
org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinit
ions(XmlWebApplicationContext.java:93)
at 
org.springframework.context.support.AbstractRefreshableApplicationContext.refres
hBeanFactory(AbstractRefreshableApplicationContext.java:130)
at 
org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFa
ctory(AbstractApplicationContext.java:467)
at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractA
pplicationContext.java:397)
at 
org.springframework.web.context.ContextLoader.createWebApplicationContext(Contex
tLoader.java:276)
at 
org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextL
oader.java:197)
at 
org.springframework.web.context.ContextLoaderListener.contextInitialized(Context
LoaderListener.java:47)
at 
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972
)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:593)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
: Context initialization failed

Original issue reported on code.google.com by ashish.dasnurkar on 1 Feb 2011 at 5:25

GoogleCodeExporter commented 9 years ago
this experimental component-scan feature was disabled due to spec change. The 
reason we changed the spec is to make it more consistent with our standard MVC 
approach i.e. using apply attribute and remove some ambiguities/problems that 
may arise from previous spec such @Controller may apply to 
@AppliedTo("myComponent") but myComponent can exist in two different IdSpace 
which will cause the auto-wiring to fail and/or wrong binding of 
controller-component.

Added benefit is it is more explicit now as you know what controller is applied 
to which component just by looking at your ZUML code.
You can pretty much achieve the same result by using our new 
GenericSpringComposer as described in this article 
http://books.zkoss.org/wiki/ZK_Spring_Essentials/Working_with_ZK_Spring/Working_
with_ZK_Spring_Core/Inject_ZK_Components_in_Spring_Beans
please download the latest 3.0RC freshly to test this feature and provide us 
your valuable feedback, Thanks.

Original comment by ashish.dasnurkar on 1 Mar 2011 at 2:24