/ / Acessando uma origem de dados do ColdFusion a partir do código Java - java, servlets, jdbc, coldfusion

Acessando uma origem de dados do ColdFusion a partir do código Java - java, servlets, jdbc, coldfusion

Eu tenho um servlet que gostaria de executar no ColdFusion MX 7. Eu gostaria de fazer uso de um DSN ColdFusion existente como um javax.sql.DataSource, se possível.

Eu pensei em algo parecido

coldfusion.server.ServiceFactory.getDataSourceService().getDatasource(dsname);

funcionaria, mas infelizmente o servlet retorna

java.lang.NoClassDefFoundError: coldfusion/server/ServiceFactory

Respostas:

1 para resposta № 1

Esse código funcionará bem, você simplesmente não possui o ServiceFactory no seu caminho de classe. Ou seja, o Java não pode carregar essa classe. Tente incluir uma dependência em cfusion.jar de C: CFusionMX7lib.


0 para resposta № 2

Parece que a maneira mais simples de fazer isso é adicionar uma fonte de dados JNDI adicional em jrun-resources.xml. Isso pode ser acessado da maneira convencional:

Context context = new InitialContext();
DataSource ds = (DataSource)context.lookup("mydatasource");

Isso significa duplicar a configuração da conexão com o banco de dados, mas eu preferiria fazer isso do que trabalhar com as classes coldfusion.server. * Em grande parte não documentadas.