-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: Can't seem to make it work. New to Hibermate
PostPosted: Thu Dec 29, 2011 7:42 am 
Newbie

Joined: Thu Dec 29, 2011 7:25 am
Posts: 2
Hi y'all I've been trying to get a simple application to work with hibernate but it keeps failing without a clue of why it does so.

Basing on GWT sample application:
Code:
package com.mircom.spring.server;

import com.mircom.spring.client.GreetingService;
import com.mircom.spring.shared.FieldVerifier;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;

// import org.springframework.context.support.ClassPathXmlApplicationContext;
// import org.springframework.context.ApplicationContext;

import org.hibernate.Session;
// import org.hibernate.Transaction;
// import org.hibernate.HibernateException;


/**
* The server side implementation of the RPC service.
*/
@SuppressWarnings("serial")
public class GreetingServiceImpl extends RemoteServiceServlet implements
      GreetingService {

   public String greetServer(String input) throws IllegalArgumentException {
      // Verify that the input is valid.
      if (!FieldVerifier.isValidName(input)) {
         // If the input is not valid, throw an IllegalArgumentException back to
         // the client.
         throw new IllegalArgumentException(
               "Name must be at least 4 characters long");
      }

      // Escape data from the client to avoid cross-site script vulnerabilities.
      input = escapeHtml(input);
         
      Session session = (Session) SessionManager.getSession();
//      Transaction tx = session.beginTransaction();
      // CHECK IF SESSION IS NULL
      Articulo articulo = (Articulo) session.get(Articulo.class, 1);
      
       String ret = "ARTICULO=" + articulo.getDescripcion();
       // System.out.println(ret);
      
//       tx.commit();
//       session.close();
      
      return ret;   
   }

   /**
    * Escape an html string. Escaping data received from the client helps to
    * prevent cross-site script vulnerabilities.
    *
    * @param html the html string to escape
    * @return the escaped string
    */
   private String escapeHtml(String html) {
      if (html == null) {
         return null;
      }
      return html.replaceAll("&", "&amp;").replaceAll("<", "&lt;")
            .replaceAll(">", "&gt;");
   }
}


Articulo class:
Code:
package com.mircom.spring.server;

import java.util.Currency;

import java.io.Serializable;
/* If the persistent objects are distributed over the network,
* or are stored in an HttpSession, they must implement the
* java.io.Serializable interface.
*/
public class Articulo implements Serializable {
   /**
    * serialVersionUID necesario para Serializable
    */
   private static final long serialVersionUID = 1L;
   private int id;
   private String codigo;
   private String descripcion;
   private Currency precioCompra;
   private Currency precioVenta;
   private int idUdMedida;
   private String descripcionLarga;
   private String tipoArticulo;
   
   //zero-argument constructor
   public Articulo() {
   }
   public int getId() {
      return id;
   }
   public void setId(int id) {
      this.id = id;
   }
   public String getDescripcion() {
      return descripcion;
   }
   public void setDescripcion(String descripcion) {
      this.descripcion = descripcion;
   }
   public Currency getPrecioCompra() {
      return precioCompra;
   }
   public void setPrecioCompra(Currency precioCompra) {
      this.precioCompra = precioCompra;
   }
   public Currency getPrecioVenta() {
      return precioVenta;
   }
   public void setPrecioVenta(Currency precioVenta) {
           this.precioVenta = precioVenta;
   }   
   public int getIdUdMedida() {
      return idUdMedida;
   }
   public void setIdUdMedida(int idUdMedida) {
      this.idUdMedida = idUdMedida;
   }
   public String getCodigo() {
      return codigo;
   }
   public void setCodigo(String codigo) {
      this.codigo = codigo;
   }
   public String getDescripcionLarga() {
      return descripcionLarga;
   }
   public void setDescripcionLarga(String descripcionLarga) {
      this.descripcionLarga = descripcionLarga;
   }
   public String getTipoArticulo() {
      return tipoArticulo;
   }
   public void setTipoArticulo(String tipoArticulo) {
      this.tipoArticulo = tipoArticulo;
   }   
   public String toString(){
      return id+":"+descripcion+":"+idUdMedida+":"+precioCompra+":"+precioVenta;
   }
   public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      Articulo articulo = (Articulo) o;
      if (id != articulo.id) return false;
      if (descripcion != null ? !descripcion.equals(articulo.descripcion) :
         articulo.descripcion != null) return false;
      return true;
   }
   public int hashCode() {
      int result;
      result = id;
      result = 29 * result + (descripcion != null ? descripcion.hashCode(): 0);
      return result;
   }


Being hibernate config:
Code:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- database related configurations -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/signing</property>
<property name="connection.username">root</property>
<property name="connection.password">ressec</property>
<property name="pool_size">5</property> <!--  specifies the number of connection objects held in the connection pool -->
<property name="connection.autocommit">true</property> <!-- Si no se controla manualmente -->
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache  -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- mapping files-->
<mapping
   resource="com/mircom/spring/server/Articulo.hbm.xml"/>
</session-factory>
</hibernate-configuration>


Articulo.hbm.xml:
Code:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.mircom.spring.server.Articulo" table="articulos">
   <id name="id" type="integer" column="idarticulo">
      <generator class="identity"/>
   </id>
   <!--
   <discriminator column="tipo_articulo" type="string"/>
    -->
   <property name="tipoArticulo" column="tipo_articulo" type="string" />
   <property name="codigo" column="codigo" type="string" />
   <property name="descripcion" column="descripcion" type="string" />
   <property name="precioCompra" column="precio_compra" type="currency" />
   <property name="precioVenta" column="precio_venta" type="currency" />
   <property name="idUdMedida" column="id_ud_medida" type="integer" />
   <property name="descripcionLarga" column="descripcion_larga" type="string" />
   <!--
   <subclass name="com.mircom.spring.server.Articulo_Senalizacion_Horizontal" discriminator-value="0" />
   
   <subclass name="com.mircom.spring.server.Articulo_Senalizacion_Vertical" discriminator-value="1" />
    -->
</class>
</hibernate-mapping>


Console output is:
Code:
267 [btpool0-2] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final
308 [btpool0-2] INFO org.hibernate.cfg.Environment - Hibernate 3.6.9.Final
312 [btpool0-2] INFO org.hibernate.cfg.Environment - loaded properties from resource hibernate.properties: {hibernate.c3p0.timeout=1800, hibernate.connection.driver_class=com.mysql.jdbc.Driver, hibernate.c3p0.max_statements=50, hibernate.dialect=org.hibernate.dialect.MySQL5Dialect, hibernate.c3p0.max_size=20, hibernate.c3p0.min_size=5, hibernate.connection.username=root, hibernate.connection.url=jdbc:mysql://localhost:3306/signing, hibernate.bytecode.use_reflection_optimizer=false, hibernate.connection.password=****}
341 [btpool0-2] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
346 [btpool0-2] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
634 [btpool0-2] INFO org.hibernate.cfg.Configuration - configuring from resource: com/mircom/spring/server/hibernate.cfg.xml
634 [btpool0-2] INFO org.hibernate.cfg.Configuration - Configuration resource: com/mircom/spring/server/hibernate.cfg.xml
1252 [btpool0-2] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : com/mircom/spring/server/Articulo.hbm.xml
2031 [btpool0-2] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null
2251 [btpool0-2] INFO org.hibernate.cfg.HbmBinder - Mapping class: com.mircom.spring.server.Articulo -> articulos
2327 [btpool0-2] INFO org.hibernate.cfg.Configuration - Hibernate Validator not found: ignoring
2407 [btpool0-2] INFO org.hibernate.validator.util.Version - Hibernate Validator 4.2.0.Final
2660 [btpool0-2] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
2670 [btpool0-2] INFO org.hibernate.connection.ConnectionProviderFactory - Initializing connection provider: org.hibernate.connection.C3P0ConnectionProvider
2671 [btpool0-2] INFO org.hibernate.connection.C3P0ConnectionProvider - C3P0 using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost:3306/signing
2671 [btpool0-2] INFO org.hibernate.connection.C3P0ConnectionProvider - Connection properties: {user=root, password=****, autocommit=true}
2671 [btpool0-2] INFO org.hibernate.connection.C3P0ConnectionProvider - autocommit mode: true
12:18:58,736  INFO MLog:80 - MLog clients using log4j logging.
12:18:59,605  INFO C3P0Registry:204 - Initializing c3p0-0.9.1 [built 16-January-2007 14:46:42; debug? true; trace: 10]
12:18:59,753  INFO AbstractPoolBackedDataSource:462 - Initializing c3p0 pool... com.mchange.v2.c3p0.PoolBackedDataSource@250a87a6 [ connectionPoolDataSource -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@8a9c5654 [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, debugUnreturnedConnectionStackTraces -> false, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 2vltzl8k125w4li1vpygie|12b520a, idleConnectionTestPeriod -> 0, initialPoolSize -> 5, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 1800, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 20, maxStatements -> 50, maxStatementsPerConnection -> 0, minPoolSize -> 5, nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@814009aa [ description -> null, driverClass -> null, factoryClassLocation -> null, identityToken -> 2vltzl8k125w4li1vpygie|1935a68, jdbcUrl -> jdbc:mysql://localhost:3306/signing, properties -> {user=******, password=******, autocommit=true} ], preferredTestQuery -> null, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false; userOverrides: {} ], dataSourceName -> null, factoryClassLocation -> null, identityToken -> 2vltzl8k125w4li1vpygie|67178f, numHelperThreads -> 3 ]
5308 [btpool0-2] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.MySQL5Dialect
5394 [btpool0-2] INFO org.hibernate.engine.jdbc.JdbcSupportLoader - Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
5394 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Database ->
       name : MySQL
    version : 5.5.16
      major : 5
      minor : 5
5394 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Driver ->
       name : MySQL-AB JDBC Driver
    version : mysql-connector-java-5.1.18 ( Revision: tonci.grgin@oracle.com-20110930151701-jfj14ddfq48ifkfq )
      major : 5
      minor : 1
5426 [btpool0-2] INFO org.hibernate.transaction.TransactionFactoryFactory - Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory
5429 [btpool0-2] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
5429 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled
5429 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled
5430 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15
5441 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled
5443 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled
5443 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): enabled
5443 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto
5458 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Maximum outer join fetch depth: 2
5459 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1
5459 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled
5459 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled
5459 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled
5459 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
5476 [btpool0-2] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory
5476 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}
5476 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled
5476 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled
5476 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled
5477 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge
5483 [btpool0-2] INFO org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge - Cache provider: org.hibernate.cache.NoCacheProvider
5484 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled
5484 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled
5507 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Echoing all SQL to stdout
5508 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled
5508 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled
5508 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo
5508 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled
5508 [btpool0-2] INFO org.hibernate.cfg.SettingsFactory - Check Nullability in Core (should be disabled when Bean Validation is on): disabled
5543 [btpool0-2] INFO org.hibernate.impl.SessionFactoryImpl - building session factory
5585 [btpool0-2] INFO org.hibernate.type.BasicTypeRegistry - Type registration [wrapper_materialized_blob] overrides previous : org.hibernate.type.WrappedMaterializedBlobType@e5fc61
5585 [btpool0-2] INFO org.hibernate.type.BasicTypeRegistry - Type registration [clob] overrides previous : org.hibernate.type.ClobType@11c627c
5585 [btpool0-2] INFO org.hibernate.type.BasicTypeRegistry - Type registration [java.sql.Clob] overrides previous : org.hibernate.type.ClobType@11c627c
5585 [btpool0-2] INFO org.hibernate.type.BasicTypeRegistry - Type registration [wrapper_characters_clob] overrides previous : org.hibernate.type.CharacterArrayClobType@85e47e
5585 [btpool0-2] INFO org.hibernate.type.BasicTypeRegistry - Type registration [materialized_blob] overrides previous : org.hibernate.type.MaterializedBlobType@5c1bd9
5585 [btpool0-2] INFO org.hibernate.type.BasicTypeRegistry - Type registration [blob] overrides previous : org.hibernate.type.BlobType@1287915
5585 [btpool0-2] INFO org.hibernate.type.BasicTypeRegistry - Type registration [java.sql.Blob] overrides previous : org.hibernate.type.BlobType@1287915
5586 [btpool0-2] INFO org.hibernate.type.BasicTypeRegistry - Type registration [materialized_clob] overrides previous : org.hibernate.type.MaterializedClobType@258ed1
5586 [btpool0-2] INFO org.hibernate.type.BasicTypeRegistry - Type registration [characters_clob] overrides previous : org.hibernate.type.PrimitiveCharacterArrayClobType@1c33c70
6250 [btpool0-2] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
Hibernate: select articulo0_.idarticulo as idarticulo0_0_, articulo0_.tipo_articulo as tipo2_0_0_, articulo0_.codigo as codigo0_0_, articulo0_.descripcion as descripc4_0_0_, articulo0_.precio_compra as precio5_0_0_, articulo0_.precio_venta as precio6_0_0_, articulo0_.id_ud_medida as id7_0_0_, articulo0_.descripcion_larga as descripc8_0_0_ from articulos articulo0_ where articulo0_.idarticulo=?


So it seems to work, but it doesnt, and returns control to:
Code:
            greetingService.greetServer(textToServer,
                  new AsyncCallback<String>() {
                     public void onFailure(Throwable caught) {
                        // Show the RPC error message to the user
                        dialogBox
                              .setText("Remote Procedure Call - Failure");
                        serverResponseLabel
                              .addStyleName("serverResponseLabelError");
                        serverResponseLabel.setHTML(SERVER_ERROR);
                        dialogBox.center();
                        closeButton.setFocus(true);
                     }

                     public void onSuccess(String result) {
                        dialogBox.setText("Remote Procedure Call");
                        serverResponseLabel
                              .removeStyleName("serverResponseLabelError");
                        serverResponseLabel.setHTML(result);
                        dialogBox.center();
                        closeButton.setFocus(true);
                     }
                  });

As an error. This last code is an exerpt of GWT generated sample code.

My libraries in classpath are:
antlr-2.7.6.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
slf4j-api-jar
hibernate3.jar
log4j-1.2.16.jar
mysql-connector-java-5.1.18-bin.jar
c3p0-0.9.1.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
hibernate-validator-4.2.0.Final.jar
hibernate-validator-annotation-processor-4.2.0.Final.jar
validation-api-1.0.0.GA.jar
slf4j-simple-1.6.1.jar


I get the feeling it could be a library version incompatibility

¿Can anyone help?

BTW, log file content is:
Code:
12:18:58,736  INFO MLog:80 - MLog clients using log4j logging.
12:18:59,605  INFO C3P0Registry:204 - Initializing c3p0-0.9.1 [built 16-January-2007 14:46:42; debug? true; trace: 10]
12:18:59,753  INFO AbstractPoolBackedDataSource:462 - Initializing c3p0 pool... com.mchange.v2.c3p0.PoolBackedDataSource@250a87a6 [ connectionPoolDataSource -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@8a9c5654 [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, debugUnreturnedConnectionStackTraces -> false, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 2vltzl8k125w4li1vpygie|12b520a, idleConnectionTestPeriod -> 0, initialPoolSize -> 5, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 1800, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 20, maxStatements -> 50, maxStatementsPerConnection -> 0, minPoolSize -> 5, nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@814009aa [ description -> null, driverClass -> null, factoryClassLocation -> null, identityToken -> 2vltzl8k125w4li1vpygie|1935a68, jdbcUrl -> jdbc:mysql://localhost:3306/signing, properties -> {user=******, password=******, autocommit=true} ], preferredTestQuery -> null, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false; userOverrides: {} ], dataSourceName -> null, factoryClassLocation -> null, identityToken -> 2vltzl8k125w4li1vpygie|67178f, numHelperThreads -> 3 ]


Top
 Profile  
 
 Post subject: Re: Can't seem to make it work. New to Hibermate
PostPosted: Thu Dec 29, 2011 12:57 pm 
Newbie

Joined: Thu Dec 29, 2011 7:25 am
Posts: 2
Thank you all.
My problem was related to Currency data type not to hibernate.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.