Problemas com meu arquivo XML de configuração do VRaptor

2 respostas
higornucci

Olá pessoal,

estava eu aprendendo a usar alguns frameworks web e me deparei com um problema ao tentar configurar o XML do VRaptor. Veja o que acontece no seguinte código:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
	<servlet>
		<servlet-name>vraptor2</servlet-name>
		<servlet-class>org.vraptor.VRaptorServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>vraptor2</servlet-name>
		<url-pattern>*.logic</url-pattern>
	</servlet-mapping>
</web-app>

na linha 1 aparece: No grammar constraints (DTD or XML schema) detected for the document.
e na linha 2 aparece: cvc-elt.1: Cannot find the declaration of element 'web-app'.

Bom, ao meu ver esta tudo correto, pois tenho instalado o plugin Amateras e o GEF-ALL(necessário para o Amateras).

a mensagem de erro do tomcat é a seguinte:
description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Unable to instantiate using public br.com.caelum.lojavirtual.logic.DaoInterceptor()
	org.vraptor.VRaptorServlet.service(VRaptorServlet.java:81)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

root cause

org.vraptor.interceptor.InterceptorInstantiationException: Unable to instantiate using public br.com.caelum.lojavirtual.logic.DaoInterceptor()
	org.vraptor.interceptor.InterceptorDealer.poll(InterceptorDealer.java:68)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:58)
	org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:38)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:98)
	org.vraptor.core.DefaultController.execute(DefaultController.java:46)
	org.vraptor.VRaptorServlet.service(VRaptorServlet.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

root cause

org.vraptor.component.ComponentInstantiationException: Unable to instantiate using public br.com.caelum.lojavirtual.logic.DaoInterceptor()
	org.vraptor.component.ComponentConstructor.newInstance(ComponentConstructor.java:45)
	org.vraptor.interceptor.InterceptorType.newInstance(InterceptorType.java:66)
	org.vraptor.interceptor.InterceptorDealer.poll(InterceptorDealer.java:62)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:58)
	org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:38)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:98)
	org.vraptor.core.DefaultController.execute(DefaultController.java:46)
	org.vraptor.VRaptorServlet.service(VRaptorServlet.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

root cause

java.lang.reflect.InvocationTargetException
	sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	java.lang.reflect.Constructor.newInstance(Unknown Source)
	org.vraptor.component.ComponentConstructor.newInstance(ComponentConstructor.java:43)
	org.vraptor.interceptor.InterceptorType.newInstance(InterceptorType.java:66)
	org.vraptor.interceptor.InterceptorDealer.poll(InterceptorDealer.java:62)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:58)
	org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:38)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:98)
	org.vraptor.core.DefaultController.execute(DefaultController.java:46)
	org.vraptor.VRaptorServlet.service(VRaptorServlet.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

root cause

java.lang.NoClassDefFoundError: org/dom4j/DocumentException
	br.com.caelum.lojavirtual.util.HibernateUtil.<clinit>(HibernateUtil.java:13)
	br.com.caelum.lojavirtual.dao.DaoFactory.<init>(DaoFactory.java:14)
	br.com.caelum.lojavirtual.logic.DaoInterceptor.<init>(DaoInterceptor.java:13)
	sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	java.lang.reflect.Constructor.newInstance(Unknown Source)
	org.vraptor.component.ComponentConstructor.newInstance(ComponentConstructor.java:43)
	org.vraptor.interceptor.InterceptorType.newInstance(InterceptorType.java:66)
	org.vraptor.interceptor.InterceptorDealer.poll(InterceptorDealer.java:62)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:58)
	org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:38)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:98)
	org.vraptor.core.DefaultController.execute(DefaultController.java:46)
	org.vraptor.VRaptorServlet.service(VRaptorServlet.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

root cause

java.lang.ClassNotFoundException: org.dom4j.DocumentException
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1386)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232)
	java.lang.ClassLoader.loadClassInternal(Unknown Source)
	br.com.caelum.lojavirtual.util.HibernateUtil.<clinit>(HibernateUtil.java:13)
	br.com.caelum.lojavirtual.dao.DaoFactory.<init>(DaoFactory.java:14)
	br.com.caelum.lojavirtual.logic.DaoInterceptor.<init>(DaoInterceptor.java:13)
	sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	java.lang.reflect.Constructor.newInstance(Unknown Source)
	org.vraptor.component.ComponentConstructor.newInstance(ComponentConstructor.java:43)
	org.vraptor.interceptor.InterceptorType.newInstance(InterceptorType.java:66)
	org.vraptor.interceptor.InterceptorDealer.poll(InterceptorDealer.java:62)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:58)
	org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:38)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:98)
	org.vraptor.core.DefaultController.execute(DefaultController.java:46)
	org.vraptor.VRaptorServlet.service(VRaptorServlet.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

Alguem sabe o que pode estar errado ai? O que impede meu formulario de ser executado?

OBS: o DaoInteceptor está correto.

2 Respostas

shoko

Cara, não precisa usar o amateras, usa só o eclipse WTP que já é suficiente.
O erro no xml é que está faltando o DTD ou xml schema, para voce resolver isso inclua deixe seu header parecido com esse daqui:

<web-app version="2.4"
	xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

Note que no seu xml estão faltando os atributos xmlns:xsi e o xsi:schemaLocation.

Bem, agora sobre o Vraptor, me responda a uma questão…

O seu DaoInterceptor está com modificador de classe public?

Abraço

higornucci

O problema estava em meu xml mesmo, obrigado pela ajuda.

Quando ao resto esta tudo correto, obrigado mais uma vez.

abraazzz

Criado 22 de março de 2009
Ultima resposta 22 de mar. de 2009
Respostas 2
Participantes 2