Я пытаюсь объединить два разнородных источника данных в один MBO. В документации по sybase говорится, что вы должны разработать собственный фильтр набора результатов в Java. Хорошо. Ничего страшного. Я немного знаком с JDBC Rowsets, поэтому думаю, что справлюсь с этим. Поэтому я беру JConnect 7 и пытаюсь использовать драйвер JDBC в моем фильтре наборов результатов, чтобы получить набор результатов, который я могу использовать для фильтрации набора данных, возвращаемых из веб-службы, к которой я подключаюсь. Я проверил свое соединение с помощью простого теста ниже:
try
{
DriverManager.registerDriver((Driver)Class.forName("com.sybase.jdbc4.jdbc.SybDriver").newInstance());
Connection conn = DriverManager.getConnection("jdbc:sybase:Tds:localhost:5500", "dba", "sql");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("Select * from traveler where traveler_id = 1");
while (rs.next())
{
System.out.println(rs.getRow());
}
} catch (Exception se)
{
se.printStackTrace();
}
Из которых я получаю количество строк обратно, чего я и ожидаю. Проблема заключается в том, что когда я реализую этот же код в классе фильтра ResultSet и пытаюсь предварительно просмотреть его в MBO, в консоли отладки eclipse появляется следующая ошибка (выделено для ясности):
22:14:20 [ERROR] [ExecuteSection]: Execution error
java.lang.reflect.InvocationTargetException...
[...]
Caused by: java.lang.UnsatisfiedLinkError: no dbjodbc11 in java.library.path
Это похоже на проблему с classpath, но у меня есть Jconnect jar в моем пути сборки, и это подтверждается тем фактом, что мой маленький тест успешно выполнен. Является ли это проблемой затмения? Затмение использует другой путь к классу при выполнении кода для проекта мобильного рабочего пространства?