Bom galera seguinte… estou criando um servlet que atraves do velocity ele cria um arquivo xml para guardar as informacoes.
eu fiz ele como uma aplicacao normal e funcionou achou o arquivo .vm e tudo +
soh que agora estou tentando fazer como servlet e quando executo a pagina ele da 1 erro pois nao consegue achar o arquivo .vm
os codigos:
pagina servlet
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
/**
* Servlet implementation class Lab13
*/
public class Lab13 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Lab13() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
VelocityEngine ve = new VelocityEngine();
ve.init();
Users user = new Users();
user.setEmail("teste@test.test");
user.setName("André");
user.setPassowrd("1234");
user.setRegistration("1");
VelocityContext context = new VelocityContext();
ArrayList list = new ArrayList();
Map map = new HashMap();
map.put("email", user.getEmail());
map.put("name", user.getName());
map.put("password", user.getPassowrd());
map.put("registration", user.getRegistration());
list.add( map );
context.put("Users", list);
Template t = ve.getTemplate("lab13.xml.vm");
StringWriter writer = new StringWriter();
t.merge(context, writer);
PrintWriter out = response.getWriter();
out.println(writer.toString());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
arquivo xml:
[code]
<?xml version="1.0"?> #foreach( $user in $Users) $user.email $user.name $user.password $user.registration #end [/code]web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Laboratorio13</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>Lab13</display-name>
<servlet-name>Lab13</servlet-name>
<servlet-class>Lab13</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Lab13</servlet-name>
<url-pattern>/Lab13</url-pattern>
</servlet-mapping>
</web-app>[/code]
a estrutura está:
C:\Opt\TOMCAT\apache-tomcat-7.0.6\webapps\lab13
META-INF
WEB-INF
lab13.xml.vm
C:\Opt\TOMCAT\apache-tomcat-7.0.6\webapps\lab13\WEB-INF
Classes
LIB
web.xml
C:\Opt\TOMCAT\apache-tomcat-7.0.6\webapps\lab13\WEB-INF\classes
Lab13.class
Users.class
C:\Opt\TOMCAT\apache-tomcat-7.0.6\webapps\lab13\WEB-INF\lib
velocity-1.7-dep
O erro....
[code]type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'lab13.xml.vm'
org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:474)
org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:352)
org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1533)
org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1514)
org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:373)
Lab13.doGet(Lab13.java:53)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.6 logs.