<cache:advice..../> property causes error when tomcat 6 starts - spring

We using spring 3.2.3 in a jsf-based web app. I'm tasked with implementing spring cache WITHOUT using annotations. here's my cache-context:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cache="http://www.springframework.org/schema/cache"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
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.1.xsd
http://www.springframework.org/schema/cache/spring-cache-3.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd">
<cache:advice id="cacheProvider" cache-manager="cacheManager">
<cache:caching cache="findUsers">
<cache:cacheable method="findByUser" key="#userId"/>
<cache:cache-evict method="add" all-entries="true"/>
<cache:cache-evict method="delete" all-entries="true"/>
</cache:caching>
</cache:advice>
When tomcat 6 starts, I get this error: ...org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'cache:advice'.
I don't understand why, am I missing something in my pom or xml declaration? Please help

Try to change spring-beans.xsd from http://www.springframework.org/schema/beans/spring-beans.xsd to http://www.springframework.org/schema/beans/spring-beans-3.1.xsd.
If it doesn't help show all dependencies (including version) of your application.

Related

Spring Exception: The matching wildcard is strict, but no declaration can be found for element 'int-jpa:inbound-channel-adapter'

I have the following spring-config xml file, which is generating the exception shown in the title of my post:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-jpa="http://www.springframework.org/schema/integration/jpa"
xmlns:int-sftp="http://www.springframework.org/schema/integration/sftp"
xmlns:file="http://www.springframework.org/schema/integration/file"
xmlns:int-xml="http://www.springframework.org/schema/integration/xml"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/jpa
http://www.springframework.org/schema/integration/jpa/spring-integration-jpa.xsd
http://www.springframework.org/schema/integration/sftp
http://www.springframework.org/schema/integration/sftp/spring-integration-sftp.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/integration/file
http://www.springframework.org/schema/integration/file/spring-integration-file.xsd
http://www.springframework.org/schema/integration/xml
http://www.springframework.org/schema/integration/xml/spring-
integration-xml.xsd">
<int-jpa:inbound-channel-adapter
id="resultsProcessor"
channel="responseChannel"
auto-startup="true"
named-query="OpenRecords"
expect-single-result="true"
delete-after-poll="false"
entity-class="foo.Request">
<int:poller
id="responsePoller"
fixed-rate="5000"
max-messages-per-poll="10">
</int:poller>
</int-jpa:inbound-channel-adapter>
</beans>
The code I provide above has other elements removed from it, and some of the fields renamed to simplify the example. That is why you see some schema and namespace information at the top that does not apply to the example as presented.
The error actually takes place at the line corresponding to entity-class="foo.Request">, but I don't know that there is anything inherently wrong with that line, but simply that is where the termination ">" is. In other words, if I removed that line and put the ">" after delete-after-poll="false", the error would be there instead.
Am I perhaps missing a namespace and/or schema location definition? Alternatively, could it be a missing deployment dependency? Grateful for any ideas. Thank you.
Please add org.springframework.integration:spring-integration-jpa to your dependencies. You simply missing a jar in your classpath

The matching wildcard is strict, but no declaration can be found for element 'batch:job' - just on a production server

I know this has been asked many times before but my production tomcat server errors on the batch:job tag. The app runs fine in IntelliJ + the tomcat plugin. The proxy won't allow the server to download any of the schemas but that doesn't seem to affect the bean or tx tags
<tx:annotation-driven mode="aspectj" transaction-manager="transactionManager"/>
<batch:job id="createCsvForJob">
<batch:step id="createCsvFile">
<batch:tasklet ref="createCsvForTasklet" />
</batch:step>
</batch:job>
I can download the schemaLocation urls so I don't think there are any weird characters or typos in them. Is there anything obvious I'm missing?
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:batch="http://www.springframework.org/schema/batch"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
">
My fix was to include the version number in the schemaLocation, ie
http://www.springframework.org/schema/batch/spring-batch-2.0.xsd
So I now have
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:batch="http://www.springframework.org/schema/batch"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-2.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
">
The reason was that because my server couldn't access the internet it needed to use the one that was included in the war file. To find the correct version number I command clicked the xmlns url in IntelliJ
xmlns:batch="http://www.springframework.org/schema/batch"
and just read the verison number.
Hope this helps someone else.

Spring-ws error on interceptor

I have an issued on my spring-ws-servlet.xml
when i start the ws i receive this error:
cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'ws:interceptors'.
this is the line with error (spring-ws-servlet.xml):
<ws:interceptors><bean class="com.nin.fi.sw.schema.WSLoggingInterceptor"/></ws:interceptors>
And this is the header of these file:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:ws="http://www.springframework.org/schema/web-services"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/web-services
http://www.springframework.org/schema/web-services/web-services-1.5.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
Libs:
I tried to attach differentes .xsd but withoud any success.
I dont know what im doing wrong.
You haven't added a schema location for web-services
http://www.springframework.org/schema/web-services
http://www.springframework.org/schema/web-services/web-services-2.0.xsd

failed to read schema document 'http://www.springframework.org/schema/beans/spring-beans-3.0.xsd'

While starting my Spring App, I am getting the following error :
WARNING: Ignored XML validation warning
org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document
'http://www.springframework.org/schema/beans/spring-beans-3.0.xsd', because
1) could not find the document;
2) the document could not be read;
3) the root element of the document is not <xsd:schema>.
My springapp-servlet.xml is as follows :
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean name="/hello.htm" class="springapp.web.HelloController"/>
</beans>
Please suggest.
When I got this error message, it was merely because of a missing jar in my CLASSPATH. Some spring applications seem to be very hungry for spring jars. My app wound up needing all of these on the classpath:
${OTS_DIR}/org.springframework.aop-${VERSION}.jar:\
${OTS_DIR}/org.springframework.aspects-${VERSION}.jar:\
${OTS_DIR}/com.springsource.org.aopalliance-${AOPALLIANCE_VER}.jar:\
${OTS_DIR}/org.springframework.asm-${VERSION}.jar:\
${OTS_DIR}/org.springframework.beans-${VERSION}.jar:\
${OTS_DIR}/org.springframework.context-${VERSION}.jar:\
${OTS_DIR}/org.springframework.core-${VERSION}.jar:\
${OTS_DIR}/org.springframework.expression-${VERSION}.jar:\
${OTS_DIR}/org.springframework.jdbc-${VERSION}.jar:\
${OTS_DIR}/org.springframework.jms-${VERSION}.jar:\
${OTS_DIR}/org.springframework.orm-${VERSION}.jar:\
${OTS_DIR}/org.springframework.transaction-${VERSION}.jar:\
${OTS_DIR}/org.springframework.instrument-${VERSION}.jar
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

Can't load spring 3 schemas

i am using Spring 3.0.5.RELEASE
and today when building the project with maven, i am getting following errors in appicationContext.xml file:
- cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element
'context:component-scan'.
- cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'context:annotation-
config'.
- cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'tx:annotation-
driven'.
i tried to open the schema links:
Spring XML Beans Schema
Spring Framework's declarative
transaction management infrastructure
Spring Framework's application
context support
but i always gets the page Forbidden !
here's how i am configuring the applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
please advise how to fix this error.
seems that the public schemas are not available anymore, so i load the schemas from the jars on the classpath instead as follows:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
classpath:/org/springframework/beans/factory/xml/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
classpath:/org/springframework/transaction/config/spring-tx-3.0.xsd
http://www.springframework.org/schema/context
classpath:/org/springframework/context/config/spring-context-3.0.xsd">
Seems you are experiencing this problem: Spring Beans Schema no longer available on the Web? Are you defining schemaLocation explicitly?
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/context/spring-context-3.0.xsd
">

Resources