2013-03-08 3 views
2

Я новичок в весеннем каркасе. Я пытаюсь использовать учебник, в котором используется spring @Async annotation.I принимаю эту ошибку Строка 9 в документе XML из ресурса пути класса [spring.xml] недействительна; Вложенное исключение - org.xml.sax.SAXParseException; lineNumber: 9; columnNumber: 109; Атрибут «xmlns» должен быть объявлен для типа элемента «beans».Атрибут "xmlns" должен быть объявлен для типа элемента "beans"

Я хочу знать, почему эта ошибка происходит и как ее можно решить?

Мой файл spring.xml ниже

**

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> 
<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:context="http://www.springframework.org/schema/context" 
xmlns:task="http://www.springframework.org/schema/task" 
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 
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"> 
<context:component-scan base-package="cs"/> 
<bean id="regularService" class="cs.RegularService"> 

</bean> 
<task:annotation-driven/> 
</beans> 

**

RegularService.java

package cs; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Service; 

import cs.MailUtility; 

@Service 
public class RegularService { 

@Autowired 
private MailUtility mailUtility ; 

public void registerUser(String userName){ 

System.out.println(" User registration for "+userName +" complete"); 

mailUtility.sendMail(userName); 

System.out.println(" Registration Complete. Mail will be send after 5 seconds "); 
} 

} 

MailUtility.java

package cs; 

import org.springframework.scheduling.annotation.Async; 
import org.springframework.stereotype.Component; 

@Component 
public class MailUtility { 

@Async 
public void sendMail(String name){ 

System.out.println(" I Will be formatting html mail and sending it "); 

try { 
Thread.sleep(5000); 

} catch (InterruptedException e) { 

e.printStackTrace(); 
} 

System.out.println(" Asynchronous method call of send email — Complete "); 

} 

} 

TestService.java

package cs; 

import org.springframework.context.support.ClassPathXmlApplicationContext; 
import cs.RegularService; 

public class TestService { 

public static void main(String args[]){ 

ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(new String[] {"spring.xml"}); 

RegularService regService = (RegularService) appContext.getBean("regularService"); 

regService.registerUser("Skill-Guru"); 

} 

} 

ответ

12

Удалить эту строку:

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> 

Затем файл является действительным.

+0

удаление этой строки удалена вышеописанному error.Now этой конкретной ошибка снова появился ** org.springframework.beans.factory.BeanCreationException: Ошибка создания компонента с именем 'org.springframework.context.annotation.internalAsyncAnnotationProcessor': вызов метода init не удался; Вложенное исключение - это java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice ** – ayushman999

+0

вам нужно добавить Spring aop jar –

+0

И не могли бы вы рассказать мне, почему нужно было удалить doctype? – ayushman999

0

У вашей springmvc config.xml ошибок.

XMLNS: задача = "http://www.springframework.org/schema/ задача"

Обновление этого MVC

+0

задача в порядке, поскольку я пытаюсь использовать taskexecutor @Async – ayushman999

Смежные вопросы