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"

Wednesday, April 4, 2012

Reading MANIFEST.MF file in java

You can read any attribute of MANIFEST.MF file. The below example show you to read the attribute for any JAR file in the CLASSPATH , here I am trying to read the Version number.



public String getVersion() {
String version=null;
try{
Enumeration <URL> resources =getClass().getClassLoader().getResources("META-INF/MANIFEST.MF");
while(resources.hasMoreElements()){
URL url = resources.nextElement();
if(StringUtils.contains(url.getFile(), "fileName")){
Manifest manifest = new Manifest(url.openStream());
version =manifest.getMainAttributes().getValue("Implementation-Version");
break;
}
}
}catch(Exception ex){
log.error("ERROR while readign the Version "+ ex.getLocalizedMessage());
}
return version;
}