Bom dia galera, estou com problemas em criar um webservise tipo restful com o hibernate, alguem poderia me ajudar com isso, algum tutorial um site que explique sobre isso???
Desde já agradeço, abraços.
Bom dia galera, estou com problemas em criar um webservise tipo restful com o hibernate, alguem poderia me ajudar com isso, algum tutorial um site que explique sobre isso???
Desde já agradeço, abraços.
Bom dia galera, estou com problemas em criar um webservise tipo restful com o hibernate, alguem poderia me ajudar com isso, algum tutorial um site que explique sobre isso???Desde já agradeço, abraços.
Bom…mas o Hibernate nao tem nada a ver com criação de serviços Rest, né? 
Coloque ai qual o seu cenário e qual o problema.
Seguinte, tenho meu ws que precisa ser gravado no banco os dados que eu envio da minha app do android, e o msm ws gera um json da tabela x, mas o problema que aqui esta jdbc, quero migrar meu ws para o hibernate.
Ok, então vamos considerar que NAO há nenhum problema com o seu serviço, e sim com a persistencia. O que você quer mudar é a maneira como os dados são gravados e lidos, e não a maneira como você expoe a coisa. Correto?
Qual está sendo o problema ai com o Hibernate?
Nao estou conseguindo persisti no banco, segue a minha classe ClienteResource:
@POST
@Path("/inserirLista")
public String inserirLista(String listaClientesJson) {
Gson gson = new Gson();
ArrayList<Cliente> listaClientes = new ArrayList<Cliente>();
JsonParser parser = new JsonParser();
JsonArray array = parser.parse(listaClientesJson).getAsJsonArray();
for (int i = 0; i < array.size(); i++) {
listaClientes.add(gson.fromJson(array.get(i), Cliente.class));
}
System.out.print("Passou aqui...");
try
{
MBCliente mbCliente = new MBCliente();
mbCliente.inserirLista(listaClientes);
//return new MBCliente().inserirLista(listaClientes);
}
catch(Exception e){
System.out.println("ERRO " + e.getMessage());
}
return listaClientesJson;
}
Metodo salvar da minha MBCliente
public String inserirLista(ArrayList<Cliente> listaClientes) throws Exception {
ClienteDAO clienteDAO = new ClienteDAO();
String retorno = "";
try
{
for (int i = 0; i < listaClientes.size(); i++)
{
if(clienteDAO.salvar(listaClientes.get(i)) < 1)
{
retorno += "Erro ao inserir o cliente de CPF: "+ listaClientes.get(i).getCpf() +"\n";
}
}
if(retorno.length() == 0)
{
retorno = "Lista de clientes inserida no banco com sucesso!";
System.out.print("Passou aqui... MB 2");
}
}
catch(Exception e)
{
System.out.print("ERRO aqui " + e.getMessage());
}
return retorno;
}
E por fim o metodo do meu ClienteDAO:
Session session = null;
Transaction transaction = null;
public int salvar(Cliente cliente) throws Exception {
try
{
session = HibernateUtil.getSessionFactory().openSession();
transaction = session.beginTransaction();
session.saveOrUpdate(cliente);
transaction.commit();
System.out.print("PAssou aki... DAO 1");
}
catch (Exception e)
{
System.out.print("ERRO... DAO 1");
transaction.rollback();
throw new Exception("Erro ao salvar!");
}finally{
session.close();
}
return 0;
}
e qual exceção está ocorrendo ai?
Desculpe esqueci de postar a exception
Informações: Initiating Jersey application, version 'Jersey: 1.5 01/14/2011 12:36 PM'
Informações: WEB0671: Loading application [WSDroiMap] at [/WSDroiMap]
Informações: WSDroiMap foi implementado com êxito em 3.062 milisegundos.
Informações: Passou aqui...
Informações: Hibernate Annotations 3.3.1.GA
Informações: cleaning up connection pool: jdbc:postgresql://localhost:5432/droidmap
Informações: Hibernate 3.2.5
Informações: hibernate.properties not found
Informações: Bytecode provider name : cglib
Informações: using JDK 1.4 java.sql.Timestamp handling
Informações: configuring from resource: /hibernate.cfg.xml
Informações: Configuration resource: /hibernate.cfg.xml
Informações: Configured SessionFactory: null
Informações: Binding entity from annotated class: br.com.droid.model.Cliente
Informações: Bind entity br.com.droid.model.Cliente on table tb_contribuinte
Informações: Hibernate Validator not found: ignoring
Informações: Using Hibernate built-in connection pool (not for production use!)
Informações: Hibernate connection pool size: 20
Informações: autocommit mode: false
Informações: using driver: org.postgresql.Driver at URL: jdbc:postgresql://localhost:5432/droidmap
Informações: connection properties: {user=postgres, password=****}
Informações: RDBMS: PostgreSQL, version: 9.1.2
Informações: JDBC driver: PostgreSQL Native Driver, version: PostgreSQL 9.1 JDBC4 (build 901)
Informações: Using dialect: org.hibernate.dialect.PostgreSQLDialect
Informações: Using default transaction strategy (direct JDBC transactions)
Informações: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
Informações: Automatic flush during beforeCompletion(): disabled
Informações: Automatic session close at end of transaction: disabled
Informações: JDBC batch size: 15
Informações: JDBC batch updates for versioned data: disabled
Informações: Scrollable result sets: enabled
Informações: JDBC3 getGeneratedKeys(): enabled
Informações: Connection release mode: auto
Informações: Default batch fetch size: 1
Informações: Generate SQL with comments: disabled
Informações: Order SQL updates by primary key: disabled
Informações: Order SQL inserts for batching: disabled
Informações: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
Informações: Using ASTQueryTranslatorFactory
Informações: Query language substitutions: {}
Informações: JPA-QL strict compliance: disabled
Informações: Second-level cache: enabled
Informações: Query cache: disabled
Informações: Cache provider: org.hibernate.cache.NoCacheProvider
Informações: Optimize cache for minimal puts: disabled
Informações: Structured second-level cache entries: disabled
Informações: Echoing all SQL to stdout
Informações: Statistics: disabled
Informações: Deleted entity synthetic identifier rollback: disabled
Informações: Default entity-mode: pojo
Informações: Named query checking : enabled
Informações: building session factory
Informações: ERRO aqui null
Session session = null;
Transaction transaction = null;
public int salvar(Cliente cliente) throws Exception {
try
{
session = HibernateUtil.getSessionFactory().openSession();
transaction = session.beginTransaction();
session.saveOrUpdate(cliente);
transaction.commit();
System.out.print("PAssou aki... DAO 1");
}
catch (Exception e)
{
System.out.print("ERRO... DAO 1");
transaction.rollback();
throw new Exception("Erro ao salvar!");
}finally{
session.close();
}
return 0;
}
session = HibernateUtil.getSessionFactory().openSession();
esse log que voce postou ocorre no momento em que voce tenta abrir a sessão, correto? foi isso que o hibernate nao conseguiu fazer…os parametros de inicialização que voce está passando pra ele estão todos certinhos, no seu arquivo de configuração?