Drools Integration With Spring Mvc - spring

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:kie="http://drools.org/schema/kie-spring"
xsi:schemaLocation="http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
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.xsd
http://drools.org/schema/kie-spring
http://drools.org/schema/kie-spring.xsd">
<kie:kmodule id="kmodule1">
<kie:kbase name="rules" packages="com.spring.drool.rules">
<kie:ksession name="ksession-rules" type="stateless" />
</kie:kbase>
</kie:kmodule>
<beans:bean id="kiePostProcessor"
class="org.kie.spring.KModuleBeanFactoryPostProcessor">
</beans:bean>
</beans>
I am trying to integrate drools with spring mvc i am getting some errors in servlet-context.xml
Error 1: At http://drools.org/schema/kie-spring.xsd
Multiple annotations found at this line:
- schema_reference.4: Failed to read schema document http://drools.org/schema/kie-spring.xsd, because
1) could not find the document;
2) the document could not be read;
3) the root element of the document is not

Related

Spring Bean tag error

Could some please let me know what things I am missing here. I m getting the below exception
Line 76 in XML document from file [C:\S2\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\proj_name\WEB-INF\classes\spring\test-context.xml] is invalid; nested exception is
org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content
was found starting with element 'bean'. One of '{"http://www.springframework.org/schema/beans":description,
"http://www.springframework.org/schema/beans":meta,
"http://www.springframework.org/schema/beans":constructor-arg, "http://www.springframework.org/schema/beans":property, "http://www.springframework.org/schema/beans":qualifier, "http://www.springframework.org/schema/beans":lookup-method, "http://www.springframework.org/schema/beans":replaced-method, WC[##other:"http://www.springframework.org/schema/beans"]}' is expected.
And I have my test-context.xml as below.
<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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-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/batch http://www.springframework.org/schema/batch/spring-batch.xsd">
<bean id="restAuthenticationEntryPoint" class="com.test.security.RestAuthenticationEntryPoint">
Could anybody please let me know why I am missing here . i have spring 3.0.5 Spring jar
You are missing surrounding <beans> </beans> tags:
<beans>
<bean id="restAuthenticationEntryPoint" class="com.test.security.RestAuthenticationEntryPoint">
<beans>
This is what the error message wants to tell you...
Invalid content was found starting with element 'bean'.
"The bean tag is not allowed here"
One of [..] beans, [..] is expected
The only valid tags here are "beans", etc.
Add <beans:beans/> to your config xml.
<beans: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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-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/batch http://www.springframework.org/schema/batch/spring-batch.xsd">
<beans:beans id="restAuthenticationEntryPoint" class="com.test.security.RestAuthenticationEntryPoint"/>
</beans:beans>
In your xml you have opened <bean> tag but not closed.
<beans xmlns....>
where is </beans> and same for restAuthenticationEntryPoint
so you are getting that exception.

LOG/print mongo options of mongoclient created using spring

For a spring based project I am using mongoTemplate to query mongo DB.
For this I have used systemProperties to configure mongo options .
Now I want to print the value of these mongo options in my server's LOG, but unable to find a suitable way to do this. Kindly suggest. Following is my spring mongo xml.
<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:aop="http://www.springframework.org/schema/aop" xmlns:task="http://www.springframework.org/schema/task" xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd">
<!-- Mongo Template for Test -->
<mongo:mongo replica-set="#{systemProperties['mongoTest.replicaset']}" id="mongoCocofs">
<mongo:options auto-connect-retry="true" connections-per-host="#{systemProperties['mongoTest.connPerHost']?:'80'}" threads-allowed-to-block-for-connection-multiplier="#{systemProperties['mongoTest.threadAllowedForConnMultiplier']?:'5'}" slave-ok="true"/>
</mongo:mongo>
<mongo:db-factory dbname="test" mongo-ref="mongoTest" id="mongoDbFactoryTest" />
<bean id="mongoTemplateTest" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactoryCocofs" />
</bean>
<context:annotation-config />
Solved it.
We can print it by calling following functions on a mongoTemplate bean:
mongoTemplate.getDb().getMongo().getMongoOptions()

cvc-elt.1: Cannot find the declaration of element 'beans' - applicationcontext.xml

I end up getting only this error:
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 12 in XML document from class path resource [applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException;
cvc-elt.1: Cannot find the declaration of element 'beans'.
I see that there is a declaration for beans already present
Can someone help me with where I am exactly going wrong?
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:jms="http://www.springframework.org/schema/jms" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
http://www.springframework.org/schema/jms
http://www.springframework.org/schema/jms/spring-jms-3.0.xsd">
<mvc:annotation-driven>
</mvc:annotation-driven>
 
 
 
 
 
 
Spring jar present is 4.1.6.
Here is your corrected file :
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:jms="http://www.springframework.org/schema/jms" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
http://www.springframework.org/schema/jms
http://www.springframework.org/schema/jms/spring-jms-3.0.xsd">
<mvc:annotation-driven>
</mvc:annotation-driven>
</beans>
You wrote xsi:schemalocation instead of xsi:schemaLocation (note the uppercase L)
More information about the xsi:schemaLocation:
The XML parser will read the schema location from internet and use it to validate the xml. If you do not have internet access (as do most Productive systems with no out going internet access) Spring comes to the rescue. It interprets the read requests and loads the schema from within the Spring jars.

Spring security intercept method shows error

<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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/security
http://www.springframework.org/schema/security/spring-security-2.0.1.xsd">
<bean id="messageBoardService"
class="com.service.MessageBoardServiceImpl">
<security:intercept-methods>
<security:protect
method="com.service.MessageBoardService.listMessages"
access="ROLE_USER,ROLE_GUEST" />
<security:protect
method="com.service.MessageBoardService.postMessage"
access="ROLE_USER" />
<security:protect
method="com.service.MessageBoardService.deleteMessage"
access="ROLE_ADMIN,IP_LOCAL_HOST" />
<security:protect
method="com.service.MessageBoardService.findMessageById"
access="ROLE_USER,ROLE_GUEST" />
</security:intercept-methods>
</bean>
by executing the above lines of code its showing error
The matching wildcard is strict, but no declaration can be found for element 'bean'
and getting red underline on security intercept method tag
here are the list of jar files
This header when added to the xml file. It works correct
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-2.0.1.xsd">

Spring AOP The matching wildcard is strict, but no declaration can be found for element 'aop:config'

Line 13 in XML document from class path resource [ApplicationContextAOP.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'aop:config'.
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
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/context/spring-context-3.0.xsd">
<bean id="audience" class="com.idol.Audience" />
<aop:config>
<aop:aspect ref="audience">
<!-- Before performance -->
<aop:before pointcut="execution(*com.idol.performers.Performer.perform(..))"
method="takeSeats"/>
<aop:before pointcut="execution(*com.idol.performers.Performer.perform(..))"
method="turnOffCellPhones" />
<!-- After performance -->
<aop:after-returning pointcut="execution(*com.idol.performers.Performer.perform(..))"
method="applaud" />
<!-- After bad performance(exception thrown) -->
<aop:after-throwing pointcut="execution(*com.idol.performers.Performer.perform(..))"
method="demandRefund" />
</aop:aspect>
</aop:config>
<bean id="poeticDuke" class="com.idol.performers.PoeticJuggler">
<constructor-arg value = "15" />
<constructor-arg ref = "sonnet29" />
</bean>
</beans>
I've seen similar error and I am pretty sure my classpath has org.springframework.aop-3.1.0.M2.jar
Could you tell me please what am I missing?
You need to add to your schemaLocation:
xsi:schemaLocation="
...
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
...
"
Adding one more possibility to the earlier provided answers :
Wrong version of schemaLocation:
http://www.springframework.org/schema/aop/
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
Correct Version:
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
REASON: The extra "/" after "schema/aop"
We received the similar error message for the element tx:advice and got it resolved by replacing the org.springframework.*-3.0.0.M3.jars with org.springframework.*-3.1.2.RELEASE.jars where * represents the jar modules. Hence, try getting a stable release to fix the similar issues.
It happened to me with the following schema definition file. The cause was the extra > after spring-aop-3.0.xsd. Solved after removing it.
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
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.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd>
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd">
<!-- reference to tht jdbc name space and schema definition file-->
<!-- to enable AspectJ support-->
<aop:aspectj-autoproxy/>
</beans>

Resources