Struts + Hibernate + Hibernate Synchronizer

3 respostas
M

Amigos…
Estou com problemas configurando essa galera, ele jah acha a minha conexão e carrega o _RootDAO.initialize(); mas qdo ele vai salvar o objeto mapeado tipo paisdao.save(pais); ele da o erro “Cannot open connection”, alguém jah passou por isso ? estou postando os métodos e as configurações q estou utilizando… agradeço qquer resposta.

server.xml

<Context debug="0"
          docBase="C:/eclipse/workspace/Projeto/WebContent"
          path="/Projeto" reloadable="true" >		  
		   <Resource name="jdbc/dsConn" type="javax.sql.DataSource"/>
		   <ResourceParams name="jdbc/dsConn">
			 <parameter>
			   <name>factory</name>
			   <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
			 </parameter>
			 <parameter>
			   <name>url</name>
			   <value>jdbc:postgresql://localhost:5432/base</value>
			 </parameter>
			 <parameter>
			   <name>password</name>
			   <value>senha</value>
			 </parameter>
			 <parameter>
			   <name>maxActive</name>
			   <value>4</value>
			 </parameter>
			 <parameter>
			   <name>maxWait</name>
			   <value>5000</value>
			 </parameter>
			 <parameter>
			   <name>driverClassName</name>
			   <value>org.postgresql.Driver</value> 
			 </parameter>
			 <parameter>
			   <name>username</name>
			   <value>user</value>
			 </parameter>
			 <parameter>
			   <name>maxIdle</name>
			   <value>2</value>
			 </parameter>
		   </ResourceParams>
		</Context>

hibernate.cfg.xml

<property name="connection.datasource">java:comp/env/jdbc/dsConnr</property>
        <property name="show_sql">false</property>		
		<!-- dialect for PostgreSQL -->
		<property name="dialect">
			net.sf.hibernate.dialect.PostgreSQLDialect
		</property>

minha actionForward

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
    	
    		// Pegando os dados do Formulário
    	   CadastroPaisForm cpf = (CadastroPaisForm)form;
    	   String pais_nome = cpf.getPais_nome();
    	   String pais_bandeira = cpf.getPais_bandeira();
    	   
    	   // Resgato a Sessão
    	   HttpSession session = request.getSession();
   	      	   
    	   // compare numbers, if equal, forward to FORWARD_match resource
    	   // if not, forward to FORWARD_nomatch
    	   if ( pais_nome.length() == 0) {    	      
    	      return mapping.findForward(FORWARD_webCadastroNotOK);
    	   }
    	   else {
    	      // if we guess the number and want to play a new game, kill
    	      // the current session so that we start with a new one
    	   	  try{
    	   	  	_RootDAO.initialize();
    	   	  	
    	   	  	Pais pais = new Pais();
    	   	  	PaisDAO paisdao = new PaisDAO();
    	   	  	
    	   	  	pais.setPaisNome(pais_nome);
    	   	  	pais.setPaisBandeira(pais_bandeira);
   	   	  	
    	   	  	paisdao.save(pais);
    	   	  	
			  }catch (Exception e){
			  	System.out.println("Erro: " + e.getMessage());
			  }
    	   	
    	      session.invalidate();
    	      return mapping.findForward(FORWARD_webCadastroOK);
    	   }
        
    }

3 Respostas

Z

O nome do resource é jdbc/dsConn, mas no hibernate.cfg.xml está como jdbc/dsConnr.

E coloque e.printStackTrace() no lugar de System.out.println("Erro: " + e.getMessage());. Fica mais fácil achar erros assim.

M

Valeu zeh… mas esse erro foi apenas na hora de eu modificar o codigo fonte para publicar aki no forum, pois o meu codigo fonte aki tem o nome da Datasource diferente.

Z

Você consegue acessar o banco de dados usando Java sem ser pelo pool do Tomcat?

Criado 3 de julho de 2005
Ultima resposta 3 de jul. de 2005
Respostas 3
Participantes 2