Доступ к источнику данных ColdFusion из кода Java

63
5

У меня есть сервлет, который я хотел бы запустить в ColdFusion MX 7. Я бы хотел использовать существующий ColdFusion DSN как javax.sql.DataSource, если это возможно.


Я подумал что-то вроде


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

будет работать, но, к сожалению, сервлет возвращает


java.lang.NoClassDefFoundError: coldfusion/server/ServiceFactory

спросил(а) 2021-01-28T00:43:23+03:00 4 месяца, 3 недели назад
1
Решение
63

Этот код будет работать нормально, у вас просто нет ServiceFactory в вашем пути к классам. Т.е. Java не может загрузить этот класс. Попробуйте включить зависимость от cfusion.jar от C:\CFusionMX7\lib.

ответил(а) 2021-01-28T00:43:23+03:00 4 месяца, 3 недели назад
45

Кажется, что самый простой способ сделать это - добавить дополнительный JNDI-источник данных в jrun-resources.xml. Затем это можно получить обычным способом:


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

Это означает дублирование конфигурации подключения к базе данных, но я предпочел бы это сделать, чем работать с недокументированными классами coldfusion.server. *.

ответил(а) 2021-01-28T00:43:23+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема