Monday, April 15, 2013

Hibernate 4 configuration with spring framework


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jee="http://www.springframework.org/schema/jee"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd">
       

<bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
   <property name="dataSource" ref="dataSource" />
    <property name="packagesToScan" value="test.model" />
    <property name="hibernateProperties">
        <props>
            vprop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
            <prop key="hibernate.show_sql">false</prop>
  <prop key="hibernate.format_sql">false</prop>
  <prop key="hibernate.use_sql_comments">true</prop>
  <prop key="hibernate.connection.release_mode">auto</prop>
  < rop key="hibernate.query.factory_class">org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory</prop>
  <prop key="show_sql">false
  <prop key="format_sql">true
        </props>
    </property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="hibernateSessionFactory" />
</bean>
   
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>


package com.marcura.dadesk.dis.dao.model;
import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/*
 *@Author Sandeep
 */
@Entity
@Table(name="TBL_LOGGING_MASTER")
public class LoggingMaster implements Serializable{


@Id
@Column(name = "TX_ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE,  generator = "master_seq")
@SequenceGenerator(name = "master_seq", sequenceName = "LOGGING_MASTER_SEQ")
private long txID;
@Column(name ="PRINCIPAL_ID", nullable=false )
private long principalId;

public LoggingMaster(long principalId){
this.principalId = principalId;
}
public LoggingMaster(){}

public long getTxID() {
return txID;
}

public void setTxID(long txID) {
this.txID = txID;
}

public long getPrincipalId() {
return principalId;
}

public void setPrincipalId(long principalId) {
this.principalId = principalId;
}

@Override
public String toString() {
return "LoggingMaster [txID=" + txID + ", principalId=" + principalId + "]";
}
}


/*
 *@Author Sandeep
 *@date Feb 14, 2013
 */
package com.marcura.dadesk.dis.services.impl;

import java.util.List;

import org.hibernate.Session;

import com.marcura.dadesk.dis.dao.HibernateDAO;
import com.marcura.dadesk.dis.dao.model.LoggingMaster;
import com.marcura.dadesk.dis.services.HibernateService;

public class HibernateServiceImpl implements HibernateService {
private HibernateDAO hibernateDAO;
@Override
public void update(Object entity) {
// TODO Auto-generated method stub
hibernateDAO.update(entity);
}

@Override
public void save(Object entity) {
// TODO Auto-generated method stub
hibernateDAO.save(entity);
}

@Override
public void saveOrUpdate(Object entity) {
// TODO Auto-generated method stub
hibernateDAO.saveOrUpdate(entity);
}

@Override
public void delete(Object entity) {
// TODO Auto-generated method stub
hibernateDAO.delete(entity);
}

public HibernateDAO getHibernateDAO() {
return hibernateDAO;
}

public void setHibernateDAO(HibernateDAO hibernateDAO) {
this.hibernateDAO = hibernateDAO;
}

@Override
public Session getCurrentSession() {
// TODO Auto-generated method stub
return this.hibernateDAO.getCurrentSession();
}


@Override
public LoggingMaster load(long txId) {
// TODO Auto-generated method stub
return this.hibernateDAO.load(txId);
}

}

/*
*@Author Sandeep
*@date Feb 14, 2013
*/
package com.marcura.dadesk.dis.services;

import java.util.List;

import org.hibernate.Session;

import com.marcura.dadesk.dis.dao.model.LoggingDetails;
import com.marcura.dadesk.dis.dao.model.LoggingMaster;
public interface HibernateService {
void update(Object entity);
void save(Object entity);
void saveOrUpdate(Object entity);
void delete(Object entity);
Session getCurrentSession();
LoggingMaster load(long txId);

}

Wednesday, January 23, 2013

SOAP Message logging

For logging the SOAP Messages before the endpoint(At Interceptor level) need to put some log entries in log4j.properties.


log4j.logger.org.springframework.ws.client.MessageTracing.sent=Trace
log4j.logger.org.springframework.ws.client.MessageTracing.received=Trace
log4j.logger.org.springframework.ws.server.MessageTracing=Trace

Sunday, May 27, 2012

Add SOAP action using Spring Framework


<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate"> 
        <constructor-arg ref="messageFactory"/> 
        <property name="messageSender"> 
       <bean class="org.springframework.ws.transport.http.CommonsHttpMessageSender"/> 
    </property> 
    <property name="defaultUri" value="http://..."> 
    </bean> 


 import javax.xml.transform.Result;
    import javax.xml.transform.Source;
    import org.apache.log4j.Logger;
    import org.springframework.ws.WebServiceMessage;
    import org.springframework.ws.client.core.WebServiceMessageCallback;
    import org.springframework.ws.client.core.WebServiceTemplate;
    import org.springframework.ws.soap.SoapMessage;
   
    /**
     *
     *
     ***********************************************
     * @author Sandeep - 13 Apr 2012
     */
    public class WebServiceHelperImpl implements WebServiceHelper {
   
    private WebServiceTemplate webServiceTemplate;
    private static final Logger log = Logger.getLogger(WebServiceHelperImpl.class);
    private String soapActionUrl = "http://..";
    @Override
    public boolean sendSourceAndReceiveToResult(String uri, Source requestPayload, Result responseResult) {
    this.webServiceTemplate.setDefaultUri(uri);
    return webServiceTemplate.sendSourceAndReceiveToResult(requestPayload,new WebServiceMessageCallback() {
           public void doWithMessage(WebServiceMessage message) {
               ((SoapMessage)message).setSoapAction(soapActionUrl);
           }
       }, responseResult);
    }
    public WebServiceTemplate getWebServiceTemplate() {
    return webServiceTemplate;
    }
   
    public void setWebServiceTemplate(WebServiceTemplate webServiceTemplate) {
    this.webServiceTemplate = webServiceTemplate;
    }
}


Tuesday, May 1, 2012

Apache ActiveMQ Web cosole

To start the web console for Apache ActiveMQ 
I am considering that you are already running with ActiveMQ
  • Stop the TOMCAT.
  • Modify the your ${TOMCAT_HOME}/bin/catalina.sh with following parameter.
JAVA_OPTS="-Dwebconsole.type=properties
-Dwebconsole.jms.url=[tcp://sandeeppc:51515] here add your broker url
-Dwebconsole.jmx.url=service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
-Dwebconsole.jmx.user=tomcat
-Dwebconsole.jmx.password=tomcat"


  • Start tomcat.
  • put the following URL on you browser http://localhost:8080/activemq-web-console-5.5.0/

Sunday, April 15, 2012

hudson java.lang.OutOfMemoryError: Java heap space


 o.h.m.e.h.MavenExecutionResultHandler - Build failed with exception(s)
 o.h.m.e.h.MavenExecutionResultHandler - [1] java.lang.OutOfMemoryError: Java heap space
 Closing connection to remote
 Java heap space -> [Help 1]
If you are using Maven on hudson for continuous integration and if there is a error for outofmemory then

  • Navigate Hudson -> [project] -> configuration
  • Build -> Invoke Maven 3 -> JVM option
  • put following parameter in that property                                                 -Xmx1024m -XX:MaxPermSize=256m -XX:+DisableExplicitGC

Other way is you can set following in mvn file
export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"