Spring em Aplicação Desktop - Problema com múltiplos applicationContext.xml

2 respostas
marcoantoniorocha

Pessoal,

Estou desenvolvendo uma aplicação desktop e estou usando Spring para fazer alguns testes.

Tenho dois applicationContext.xml. No primeiro, armazeno os dados de acesso ao Hibernate. Tenho meu dataSource e meu sessionFactory

No segundo, eu tenho todos os meus daos, que são criados referenciando o sessionFactory criado anteriormente.

Estou usando esse código:

GenericApplicationContext ctx = new GenericApplicationContext();
XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(ctx);

xmlReader.loadBeanDefinitions(new ClassPathResource("applicationContext-hibernate.xml"));
xmlReader.loadBeanDefinitions(new ClassPathResource("applicationContext-dao.xml"));

O problema é que estou obtendo o seguinte erro:

org.xml.sax.SAXParseException: No element has an ID attribute with value "sessionFactory".
	at org.apache.crimson.parser.Parser2.error(Parser2.java:3160)
	at org.apache.crimson.parser.ValidatingParser.afterRoot(ValidatingParser.java:140)
	at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:503)
	at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
	at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
	at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:222)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:173)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:148)
	at Teste.main(Teste.java:29)

Alguém tem alguma idéia de como resolver?

Abraços!

2 Respostas

urubatan
marcoantoniorocha:
Pessoal,

Estou desenvolvendo uma aplicação desktop e estou usando Spring para fazer alguns testes.

Tenho dois applicationContext.xml. No primeiro, armazeno os dados de acesso ao Hibernate. Tenho meu dataSource e meu sessionFactory

No segundo, eu tenho todos os meus daos, que são criados referenciando o sessionFactory criado anteriormente.

Estou usando esse código:

GenericApplicationContext ctx = new GenericApplicationContext();
XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(ctx);

xmlReader.loadBeanDefinitions(new ClassPathResource("applicationContext-hibernate.xml"));
xmlReader.loadBeanDefinitions(new ClassPathResource("applicationContext-dao.xml"));

O problema é que estou obtendo o seguinte erro:

org.xml.sax.SAXParseException: No element has an ID attribute with value "sessionFactory".
	at org.apache.crimson.parser.Parser2.error(Parser2.java:3160)
	at org.apache.crimson.parser.ValidatingParser.afterRoot(ValidatingParser.java:140)
	at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:503)
	at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
	at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
	at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:222)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:173)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:148)
	at Teste.main(Teste.java:29)

Alguém tem alguma idéia de como resolver?

Abraços!
olha, não era para ter problema nenhum, mas tenta assim:
ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"applicationContext-hibernate.xml","applicationContext-dao.xml"});

se isto não funcionar ...
tu definiu o Bean de nome sessionFactory?

o problema parece que se o bean sessionFactory esta definido, tu definiu ele em outro arquivo e ta tentando acessar com um <bean
local="sessionFactory/>

em vez de usar:
<bean ref="sessionFactory/>
...

marcoantoniorocha

Era esse mesmo o problema. Estava fazendo a referência com “local”.

Obrigado

Criado 16 de maio de 2006
Ultima resposta 16 de mai. de 2006
Respostas 2
Participantes 2