glue-ucube 모듈 추가
glue-xplatform 모듈 추가
glue-schema 모듈 수정
glue-core 모듈 수정
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" updateCheck="false" name="__DEFAULT__">
<cache name="_default-region" maxElementsInMemory="500" eternal="true" />
<cache name="_sql-region" maxElementsInMemory="500" eternal="true" />
<cache name="_message-definition-region" maxElementsInMemory="500" eternal="true" />
<cache name="_service-region" maxElementsInMemory="500" eternal="true" />
<cache name="_column-region" maxElementsInMemory="500" eternal="true" />
</ehcache>
GlueCacheManager cacheManager = . . .
String cacheKey = . . .
Object data = null;
if ( cacheManager.isPresent( cacheKey ) )
{
data = cacheManager.getCacheObject( cacheKey );
} else
{
data = loadData( cacheKey );
cacheManager.putCacheObject( cacheKey, data );
}
GlueCacheManager cacheManager = . . . GlueCacheLoader cacheLoader = . . . String cacheKey = . . . String cacheRegion = . . . Object data = cacheManager.getCacheObject( cacheKey, cacheRegion, bizLoader );
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<listener>
<listener-class>com.poscoict.glueframework.web.GlueServletContextListener</listener-class>
</listener>
</web-app>
| . | type | ifd | message |
| case#1 | F | IF-FILE-FILE | MSGFW002_/APP/CHAIN/MSGFW002_20130201.dat |
| case#2 | F | IF-FILE-FILE | MSGFW002/APP/CHAIN/MSGFW002_20130201.dat |
| case#3 | F | IF-FILE-FILE | /APP/CHAIN/MSGFW002_20130201.dat |
| case#4 | T | IF-TC-TC | MSGFW00110abcde_________seoul________S________ |
| . | type | ifd | message |
| case#1 | T | IF-TC-TC | MSGFW00110abcde_________seoul________S________ |
| case#2 | T | IF-TC-TC | MSGFW00510abcde_________seoul________S________ |
<activity name="Parse" class="com.poscoict.glueframework.biz.activity.GlueMessageParse">
<transition name="success" value="SetMessageKey" />
<property name="layout" value="layout" />
<property name="message-id" value="MSGFW001" />
</activity>
<activity name="ParseFile" class="com.poscoict.glueframework.biz.activity.GlueMessageParse">
<transition name="success" value="SetMessageKey" />
<property name="layout" value="layout" />
<property name="charset" value="UTF-8" />
</activity>
중략 . .
[main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - Loaded JDBC Driver: SQLiteJDBC
[main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - Loaded JDBC Driver Version: native
[main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - DBMS Name: SQLite
[main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - DBMS Version: 3.7.2
[main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - DBMS URL: jdbc:sqlite:/C://eclipse/workspace-glue-4-sample/sample-parent/layout.db
[main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - Batch Update: true
중략 . .
com.poscoict.glueframework.message.layout.GlueMessageDefinitionException: Message Definition loading error!!
at com.poscoict.glueframework.message.layout.GlueDBMessageLayout.getAttributesDefinition(GlueDBMessageLayout.java:195) ~[glue-core-4.2.2-RELEASE.jar:na]
at com.poscoict.glueframework.message.layout.GlueAbstractFixedLengthMessageLayout.getAttributes(GlueAbstractFixedLengthMessageLayout.java:309) ~[glue-core-4.2.2-RELEASE.jar:na]
at com.poscoict.glueframework.biz.activity.GlueMessageParse.runActivity(GlueMessageParse.java:191) ~[glue-core-4.2.2-RELEASE.jar:na]
at com.poscoict.glueframework.biz.control.GlueService$GlueActivityHandler.runActivity(GlueService.java:166) ~[glue-core-4.2.2-RELEASE.jar:na]
at com.poscoict.glueframework.biz.control.GlueBizControllerImpl.doAction(GlueBizControllerImpl.java:288) ~[glue-core-4.2.2-RELEASE.jar:na]
at test.Test_MSGFW001.main(Test_MSGFW001.java:30) [test-classes/:na]
Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.math.BigDecimal
at com.poscoict.glueframework.message.layout.GlueDBMessageLayout.getAttributesDefinition(GlueDBMessageLayout.java:163) ~[glue-core-4.2.2-RELEASE.jar:na]
... 5 common frames omitted
중략 . .
Class.forName( "org.sqlite.JDBC" );
Connection conn = DriverManager.getConnection( "jdbc:sqlite:layout.db" );
Statement stmt = conn.createStatement();
StringBuilder sb = new StringBuilder();
sb.append( "create table LAYOUT(" );
sb.append( "MDL_DEFINE_NM text not null" );
sb.append( ", MDL_DEFINE_DT_NM_SEQ integer not null" );
sb.append( ", MDL_DEFINE_DT_NM_GROUP_TP text not null" );
sb.append( ", STANDARD_ENGLISH_ID text not null" );
sb.append( ", STANDARD_KOREAN_NAME text not null" );
sb.append( ", MDL_DEFINE_DT_NM_DATA_TP integer not null" );
sb.append( ", MDL_DEFINE_DT_NM_LEN integer not null" );
sb.append( ", MDL_DEFINE_DT_NM_V_DECI_PREC integer" );
sb.append( ", CONSTRAINT LAYOUT_PK PRIMARY KEY (MDL_DEFINE_NM, MDL_DEFINE_DT_NM_SEQ))" );
stmt.executeUpdate( sb.toString() );
stmt.execute( "PRAGMA foreign_keys = ON" );
stmt.executeUpdate( "insert into LAYOUT values('MSGFW001',1,'E','TRANSACTION_CODE','TransactionCode',1,8,null)" );
stmt.executeUpdate( "insert into LAYOUT values('MSGFW001',2,'E','DEPTNO','부서번호',2,2,0)" );
stmt.executeUpdate( "insert into LAYOUT values('MSGFW001',3,'E','DNAME','부서명',1,14,null)" );
stmt.executeUpdate( "insert into LAYOUT values('MSGFW001',4,'E','DLOC','부서위치',1,13,null)" );
stmt.executeUpdate( "insert into LAYOUT values('MSGFW001',5,'E','CRUD','CRUD',1,1,null)" );
stmt.close();
conn.close();
중략 . .
[main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - Loaded JDBC Driver: Postgres Plus Advanced Server Native Driver
[main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - Loaded JDBC Driver Version: Postgres Plus Advanced Server 9.3 (9.3.3.8)
[main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - DBMS Name: EnterpriseDB
[main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - DBMS Version: 9.3.5.14
[main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - DBMS URL: jdbc:edb://localhost:5444/edb
[main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - Batch Update: true
[main] WARN com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - No Suitable Driver: Not support a sequence incrementer: EnterpriseDB
중략 . .
Exception in thread "main" com.poscoict.glueframework.GlueException: Cannot get sequence: sequence object is null
at com.poscoict.glueframework.dao.jdbc.GlueJdbcDao.getSequence(GlueJdbcDao.java:223)
at sample.activity.GetSequenceFromEDB.runActivity(GetSequenceFromEDB.java:13)
at com.poscoict.glueframework.biz.control.GlueService$GlueActivityHandler.runActivity(GlueService.java:166)
at com.poscoict.glueframework.biz.control.GlueBizControllerImpl.doAction(GlueBizControllerImpl.java:287)
at test.Test.main(Test.java:51)
중략 . .
<bean id="biz-dao" class="com.poscoict.glueframework.dao.jdbc.GlueJdbcDao">
<property name="dataSource" ref="biz-dataSource"/>
<property name="queryManager" ref="queryManager"/>
</bean>
<bean id="biz-dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.edb.Driver"/>
<property name="url" value="jdbc:edb://localhost:5444/edb"/>
<property name="username" value="enterprisedb"/>
<property name="password" value="password!"/>
<property name="defaultAutoCommit" value="false"/>
<property name="minIdle" value="0"/>
<property name="maxActive" value="-1"/>
<property name="maxIdle" value="1000"/>
</bean>
String SEQ = . . .; GlueGenericJdbcDao dao = . . .; GlueSequence sequence = dao.getSequence(); Object value = sequence.getNextIntValue( SEQ )