Fal galera do forum …
estou com um problema e gostaria que vcs me dessem uma dica de como resolve-lo…
é o seguinte estou querendo usar um framework MVC para simplificar a minha vida … não ter que ficar digitando
muito código com o uso direto de Servlet…
Bem estou desenvolvendo uma aplicação onde uso o banco de dados DB4O que para mim é um banco ótimo…
Meu sistema é o seguinte eu tenho um Servidor de banco de dados… e gostaria de mantelo aberto em quanto o contexto da aplicação estiver aberta isso é quando inicio o Tom cat ele cria o servidor para mim e quando dou um shotdown no servidor ele fecha o Servidor do banco de dados.
até tudo bem crie com Servlet e funciona perfeitamente …
o código é o seguinte:
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.db4o.Db4o;
import com.db4o.ObjectServer;
import com.db4o.config.ConfigScope;
import com.db4o.config.Configuration;
public class Db4oServletContextListener implements ServletContextListener {
private ObjectServer server = null;
private final String KEY_DB4O_FILE_NAME = "db4oFileName";
private final String KEY_DB4O_SERVER = "db4oServer";
public void contextInitialized(ServletContextEvent event) {
close();
ServletContext context = event.getServletContext();
String filePath = context.getRealPath("WEB-INF/DataBase/"
+ context.getInitParameter(KEY_DB4O_FILE_NAME));
server = Db4o.openServer(filePath, 0);
context.setAttribute(KEY_DB4O_SERVER, server);
context.log("db4o startup on ");
}
public void contextDestroyed(ServletContextEvent event) {
ServletContext context = event.getServletContext();
context.removeAttribute("db4oServer");
close();
context.log("db4o shutdown");
}
private void close() {
if (server != null) {
server.close();
}
server = null;
}
}
Esse código é o responssavel por criar o Servidor do banco de dados…
e essse é o respoonssavel por abrir o Client do banco :
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.webpatterns.webloja.dao.UsuarioDao;
import br.com.webpatterns.webloja.modelo.Usuario;
import com.db4o.ObjectContainer;
import com.db4o.ObjectServer;
public class AcessaAplicacao extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext context = getServletContext();
ObjectServer server = (ObjectServer) context.getAttribute("db4oServer");
ObjectContainer objectcontainer = server.openClient(); // crio o Client apartir do Server do Contexto
UsuarioDao usuariodao = new UsuarioDao(objectcontainer);
PrintWriter out = response.getWriter();
Usuario u = new Usuario();
u.setId(10);
u.setLogin("Admim");
u.setSenha("admin");
u.setEmail("[email removido]");
if(usuariodao.extiteUnico(u) == null) {
usuariodao.adiciona(u);
out.println("<html>");
out.println("Usuario adicionado com sucesso.");
out.println("</html>");
objectcontainer.close();
}
else {
out.println("<html>");
out.println("Usuario ja foi cadastrado.");
out.println("</html>");
objectcontainer.close();
}
}
}
coloquei a regra de gravação junto só para testar…
mais ai vem o meu problema gostaria de fazer do mesmo jeito no vraptor…
quando eu iniciar o Tomcat ele criasse o Servidor do Db4O e eu so pegasse o contexto e criasse o Client apartir desse servidor…
alguem teria ideia de como fazer isso…
por favor fico aguardando respostas…