Spring + Jboss - Configuration can't be altered once the class has been compiled or used

0 respostas
darlanmoraes
Olá, Existe um insert que quando é executado na primeira vez que o tomcat sobe funciona normalmente, depois não funciona mais. Estou utilizando Spring 3. Tenho 3 dataSources configurados no application-persistence.xml. O datasource com problema é o seguinte:
<!-- begin -->
	<bean id="pbtDataSource"
		class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy">
		<constructor-arg ref="pbtDataSourceTarget" />
	</bean>

	<bean id="pbtDataSourceTarget"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource"
		p:driverClassName="${jdbc.pbt.driverClassName}"
		p:url="${jdbc.pbt.url}">
		<property name="connectionProperties">
			<ref bean="pbtDataSourceProps" />
		</property>
	</bean>

	<bean id="pbtDataSourceProps" class="java.util.Properties">
		<constructor-arg>
			<props>
				<prop key="user">${jdbc.pbt.username}</prop>
				<prop key="password">${jdbc.pbt.password}</prop>
				<prop key="DYNAMIC_CLASS">
					com.purebros.callcenter.db.DynamicClass
				</prop>
			</props>
		</constructor-arg>
	</bean>
	<!-- end -->
<!-- Transaction configuration -->
	<bean id="jbossTransactionManager"
		class="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple" />

	<bean id="jbossUserTransaction"
		class="com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple" />

	<bean id="transactionManager"
		class="org.springframework.transaction.jta.JtaTransactionManager">
		<property name="transactionManager">
			<ref bean="jbossTransactionManager" />
		</property>
		<property name="userTransaction">
			<ref bean="jbossUserTransaction" />
		</property>
	</bean>
Possuo um DAO genérico como a seguir:
@Autowired
	@Resource(name = "pbtDataSource")
	public void setPbtDataSouce(DataSource dataSource) {
		this.pbtSimpleJdbcTemplate = new SimpleJdbcTemplate(dataSource);
		this.pbtSimpleJdbcInsert = new SimpleJdbcInsert(dataSource);
		this.pbtSimpleJdbcCall = new SimpleJdbcCall(dataSource);
	}
public class UserActionDAOjdbc extends GenericDAOJdbc...
...
try {			
        return BigInteger.valueOf(pbtSimpleJdbcInsert.withTableName("tab_user_action").usingGeneratedKeyColumns("id").executeAndReturnKey(parameters).intValue());
    }
Este return na primeira execução retorna o id correto, na segunda gera a seguinte exceção: org.springframework.dao.InvalidDataAccessApiUsageException: Configuration can't be altered once the class has been compiled or used.

Estou a mais de um dia apanhando para isto, qualquer ajuda é bem-vinda. :D
Valeu!

Criado 15 de agosto de 2011
Respostas 0
Participantes 1