Open Source Integration on SAP Composite Environment 7.x

Leave a comment

* UI Layer – Struts2 version 2.0.14

  1. Each web request handled by web default class loader will invoke a new Web session object [ObjectFactory or Filter object ] to load struts.xml file.
    Default class Loader path – under root classpath of Web application, exactlly speaking, under \servlet_jsp\\root\WEB-INF\classes. So in order to load Web jsp as action, you need to redirect action name based on class loader path.
           +—index.jsp+other jsps
           +—classes <= default class loader path of struts2
           +—lib <= runtime library
    So, when action mapping, A.jsp should be specified as follow ../../A.jsp in struts.xml or other include files.
  2. In order to see if Action is avaiable after the Web session has been started, config-browser could be used, the offical demo of Struts2 debugging could be found Debugging with Struts2.

* Business Reusble Layer – Stateless Session Bean , Hiberate and Spring


  • Spring and Hiberate could instantiate reusable bean during the deployment;
  • EJB could reuse the Spring and Hiberate bean instance in object pool during life cycle control;
  • Compared with JPA 1.0 OR mapping, Hiberate could provide a leaner implementation, if object cache optimization topic hasn’t been discussed.

Technical Architecture

    The main architecture has been shown in the following chart.

The core idea of multi-layers is that we can isolated Spring and Hiberate application under EJB layer, then construct a lean and shared Java Client Framework.Then in the UI layer, we can use struts together with Spring client bean to construct a lean UI layer.Easy to forecast that UI layer will be changed dynamically, however the underlined business foundtation services won’t be changed so much. With an isloated EJB layer and underlined core services implementation, together with interface contact, our architecture could adapt to the changes as fast as possible. A short description from bottom to up as follow:

  • Foundation Framework
  1. Platform EJB [Generic Service Layer, such as Generic HiberateDAO service and SAP JCO connection bean]
  2. Open Source libraries DC[Including standardize version of shared open source libraries]
  • Reuse Interface
  1. Share Interface – Cross VM interface [RMI interface, EJB interface, Hiberate DAO interface & Configuration], All of items could be serizable and be passed by different client. In short, Service Contact interface
  2. Java Client Framework – EJB Client Proxy[decouple EJB caller as simple JavaBean implementation, which could be used in Struts&Spring bean]; Reuse Web Client Optimization and Interceptor[Including Gzip of JS client scripts and Interceptor with Profiling for cross Platforms]
  • Business Framework – Common EJB for business logic
  • Presentation Layer –  Web UI layer
  • EJB Client Test Layer – Automated Java Test case based on EJB interface

Implementation of Prototpye

Now I’d like to give the detailed information about implementation prototype.


JBoss 6.0 Configuration

Leave a comment

1, Jboss lean installation file location : offical community download site
The http port changes for the latest version :
Port configuration : Port configuration file
Start Stop JBoss 6.0 application server
A quit link guide for Jboss part – Change default http port directly

2, Jboss startup issues :
14:01:38,977 WARNING [FileConfigurationParser] AIO wasn’t located on this platform, it will fall back to using pure Java NIO. If your platform is Linux, install LibAIO to enable the AIO journal
to enable LibAIO part.


Leave a comment