Looks like it is related to bitronix transaction. during Environment initiation, if I comment out the transaction manager setting statement as below, there will be no NPE. But I not sure if there is any transaction control anymore.
EntityManagerFactory emf = Persistence.createEntityManagerFactory( "org.drools.persistence.jpa" );
Environment env = KnowledgeBaseFactory.newEnvironment();
env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf);
//env.set(EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager());