В настоящее время я застрял со следующей проблемой.Я много читал, я много пробовал, но до сих пор не мог понять, как это решить.Я хотел бы добиться следующего:
Плагин панели вкладок вопросов Jira, который подключается через JDBC к экземпляру SQL Server и извлекает данные из таблицы, которая затем отображается в плагине
Далее, потенциально полезноинформация:
- JIRA Сборка: 7.13.0
- Сервер приложений: Apache Tomcat / 8.5.35 - API сервлетов 3.1
- Версия Java: 1.8.0_212 - AdoptOpenJDK
- atlassian-plugin-sdk: 8.0.7
- apache-maven: 3.5.4
- amps-dispatcher-maven-plugin: 8.0.0
Сам плагин панели вкладок проблем уже работал, и мне удалось отобразить некоторые базовые данные (проблемы и пользовательские данные), но данные из SQL не были получены.Сообщение об ошибке в журнале было следующим:
java.sql.SQLException: No suitable driver found for jdbc:sqlserver://servername\LOCAL;databaseName=dbname;user=user;password=password;
В проекте плагина Jira я затем добавил следующие зависимости в файл pom.xml:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.0.0.jre8</version>
</dependency>
<dependency>
<groupId>com.microsoft.aad</groupId>
<artifactId>adal4j</artifactId>
<version>0.0.2</version>
</dependency>
Я запустил atlas-очистите, а затем снова отладьте atlas.
Полученное сообщение об ошибке (с 7.0.0.jre8):
Cannot start plugin: com.atlassian.tutorial.myPlugin
[INFO] [talledLocalContainer] Unresolved constraint in bundle com.atlassian.tutorial.myPlugin [171]:
Unable to resolve 171.0: missing requirement [171.0] osgi.wiring.package; (osgi.wiring.package=com.microsoft.azure)
Я частично перестроил код плагина в проекте mavenв Eclipse и все отлично работает.Я могу получить данные.В Eclipse я использую драйвер: mssql-jdbc-7.2.2.jre11.jar, который находится в ссылочных библиотеках.Сам код java работает.
Я также попробовал следующее (очевидно, без успеха):
- Различные версии драйвера jdbc для sql-сервера (версии jre8 и jre11)
- Я также пытался добавить этот mssql.jar в следующие папки:
- \ myPlugin \ target \ container \ tomcat8x \ apache-tomcat-8.5.35 \ lib
- \ myPlugin \ target \jira \ webapp \ WEB-INF \ lib
Я прочитал, что мне нужно добавить источники данных в разные xml-файлы (например, dbconfig), но я запутался, где именно мне сейчас нужно добавить какой код.
Если у кого-нибудь есть какие-то предложения, которые я еще могу попробовать, я был бы очень рад.
Для полноты:
См. Ниже класс, который я использую для подключения к SQL.Это работает в Eclipse.Входными данными являются строка согласия (см. Выше) и простой SQL-запрос.
public static ArrayList<Map<String, Object>> getRows(String conn, String query) throws SQLException
{
try (Connection con = DriverManager.getConnection(conn); Statement stmt = con.createStatement();) {
ResultSet rset = stmt.executeQuery(query);
ResultSetMetaData rsmd = rset.getMetaData();
int columncount = rsmd.getColumnCount();
ArrayList<Map<String, Object>> queryResult = new ArrayList<Map<String, Object>>();
while (rset.next()) {
Map<String, Object> row = new HashMap<String, Object>();
for (int i = 1; i <= columncount; i++) {
row.put(rsmd.getColumnName(i), rset.getObject(i));
}
queryResult.add(row);
}
con.close();
return queryResult;
}
// Handle any errors that may have occurred.
catch (SQLException e) {
e.printStackTrace();
}
return queryResult;
}
}