Hibernate - Deploy de aplicação web no JBoss

10 respostas
W

PREZADOS, BOM DIA,

ESTOU COM O SEGUINTE PROBLEMA NO MEU TRABALHO, APOS DESENVOLVER UM SITE BASICO USANDO JSP-SERVLETS + HIBERNATE, ADOTANDO O TOMCAT COMO

SERVIDOR DE DESENVOLVIMENTO, REALIZEI O DEPLOY DA APLICACAO NO JBOSS 5(AO FAZER O EXPORT PELO ECLIPSE ESCOLHI A OPCAO DE TARGET RUNTIME PARA

JBOSS, FAZENDO COM QUE NAO SEJAM EMPACOTADOS OS .JAR DO HIBERNATE) POREM AO TENTAR REALIZAR O SAVE NO BANCO DE DADOS O SISTEMA EXIBE UMA

MENSAGEM DE QUE O OBJETO NAO ESTA MAPEADO, VOCES PODERIAM ME AJUDAR!

SEGUE O CODIGO DO HIBERNATEUTIL.JAVA E DO HIBERNATE.CFG.XML.

OBRIGADO!

10 Respostas

balrog

seu teclado esta com problema … soh funciona a caixa alta?

ViniGodoy

Por favor, não abuse das letras maiúsculas. Para conhecer nosso código de conduta, leia:
http://www.guj.com.br/java/287476-gujnautas-how-to

Ataxexe

Poste o stacktrace e o código que você usou pra persistir seu objeto, mas use a tag [code] pra isso em vez de anexar.

W

segue o stacktrace do server.log

012-12-13 10:44:08,892 ERROR [STDERR] (http-0.0.0.0-80-6) org.hibernate.HibernateException: Nao foi possivel realizar a INCLUSÃO, erro: Unknown entity: br.org.cnseg.balsoc.model.SocioEconomico	at br.org.cnseg.balsoc.dao.HibernateDAO.save(HibernateDAO.java:37)

at br.org.cnseg.balsoc.dao.SocioEconomicoDAO.Salvar(SocioEconomicoDAO.java:47)

at br.org.cnseg.balsoc.action.SocioEconomicoAction.doPost(SocioEconomicoAction.java:288)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)

at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)

at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)

at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

at java.lang.Thread.run(Thread.java:619)
W

pesquisei no google e vi que uma provavel causa para esse problema seria estar utilizando no import o pacote org.hibernate.annotations.Entity , em vez de javax.persistence.Entity so que estou importando javax.persistence.Entity.]

teria mais alguma configuração a ser feita?

Ataxexe

wagnerlfs:
pesquisei no google e vi que uma provavel causa para esse problema seria estar utilizando no import o pacote org.hibernate.annotations.Entity , em vez de javax.persistence.Entity so que estou importando javax.persistence.Entity.]

teria mais alguma configuração a ser feita?

A priori não, use as anotações do JPA em vez do hibernate. Qualquer coisa poste o código das suas entidades.

W

[b]segue o codigo do POJO:

package br.org.cnseg.balsoc.model;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import <a href="http://javax.persistence.Id">javax.persistence.Id</a>;

@Entity
public class SocioEconomico {

public SocioEconomico() {
	// TODO Auto-generated constructor stub
}

@Id
@GeneratedValue
private int idSocioEconomico;	
private int idUsuario;	
private int idSegmento;

private Double relacaoSalarioEmpresaMinimo;


            <-- getters e setters -->

}

HibernateUtil.java

package br.org.cnseg.balsoc.util;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.AnnotationConfiguration;
import br.org.cnseg.balsoc.model.InformacaoComplementar;

import br.org.cnseg.balsoc.model.InformacaoPerfil;

import br.org.cnseg.balsoc.model.SocioEconomico;
//## import org.hibernate.Session;

//## import org.hibernate.SessionFactory;

//## import org.hibernate.Transaction;

//## import org.hibernate.cfg.Configuration;

public class HibernateUtil {
private static SessionFactory sessionFactory;

private HibernateUtil() {
}
 
public static SessionFactory getSessionFactory() {
	if (sessionFactory == null) {
		try {
			
			//## Configuration cfg = new Configuration();   
            //## cfg.configure("/hibernate.cfg.xml").buildSessionFactory();   
             
            // Create the SessionFactory from standard (hibernate.cfg.xml)
			// config file.
			AnnotationConfiguration ac = new AnnotationConfiguration();
		
			ac.addAnnotatedClass(InformacaoPerfil.class);
			ac.addAnnotatedClass(SocioEconomico.class);
			ac.addAnnotatedClass(InformacaoComplementar.class);

			// ac.configure("/hibernate.cfg.xml");			
			
			sessionFactory = ac.configure("/hibernate.cfg.xml").buildSessionFactory();
		} catch (Throwable ex) {
			// Log the exception.
			System.err.println("Initial SessionFactory creation failed." + ex);
			ex.printStackTrace();
			throw new ExceptionInInitializerError(ex);
		}
		return sessionFactory;
	} else {
		return sessionFactory;
	}
}

public static Session getSession() throws Exception
{
	try {
        return getSessionFactory().openSession();
		
	} catch (Exception e) {
		// TODO: handle exception
		throw new Exception("Nao foi possivel abrir a sessao, erro: " + e.getMessage());
	}
}

}

hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?> balancosocial_dsv balancosocial_dsv#$01 jdbc:jtds:sqlserver://10.1.4.104:1433/BALANCOSOCIAL_DSV net.sourceforge.jtds.jdbc.Driver org.hibernate.dialect.SQLServerDialect update true true
<!-- entidades -->
	<mapping class="br.org.cnseg.balsoc.model.InformacaoPerfil" />
	<mapping class="br.org.cnseg.balsoc.model.SocioEconomico" />
	<mapping class="br.org.cnseg.balsoc.model.InformacaoComplementar" />
</session-factory>
W

quando eu subo os arquivos para o jboss eu removo os .jars do hibernate (hibernate3, hibernate-annotations e hibernate-commons-annotations) pois os mesmos ja existem no servidor jboss, mas em compensação nao removi o ejb3-persistence.jar (arquivo que contem a referencia do javax.persistence.Entity) será que devo remover esse arquivo tambem do meu pacote na hora de subir para o jboss, ja que ele existe no servidor?

R

Verifica o que tem ou como esta essa linha:

at br.org.cnseg.balsoc.dao.HibernateDAO.save(HibernateDAO.java:37)

W

Pessoal,

muito obrigado pela atenção consegui resolver o problema remover o ejb3-persistence.jar da pasta lib do meu projeto, fazendo com que fosse utilizado o arquivo existente no jboss.

Forte Abraço!
Obrigado!

Criado 13 de dezembro de 2012
Ultima resposta 13 de dez. de 2012
Respostas 10
Participantes 5