Подключение с использованием JDBC драйвера

Обсуждение Stimulsoft Reports.JAVA
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Подключение с использованием JDBC драйвера

Сообщение HighAley »

Здравствуйте.

не моглиб ывы привести полное содержание ошибки,
текс после In connection options {...}
в фигурных скобках будет ваша строка подключения которая пришла на сервер.

Вы используете послебнии версии продукта?

Спасибо.
Golland
Сообщения: 80
Зарегистрирован: 03 окт 2012, 17:03

Re: Подключение с использованием JDBC драйвера

Сообщение Golland »

Использую вроде как последнюю версию. Бибилиотеки датированы 18.09.2012.
Полная ошибка(консоль вернула)
java.lang.IllegalArgumentException: In connection options '{amriyy5kcml2zxi9cnnzynvzlmpkymmuc2fszxnmb3jjztsnamriyy51cmw9amriyzpzywxlc2zv
cmnlonvzzxi9b19yzwljzw5aag90bwfpbc5jb207cgfzc3dvcmq9uirfi3cycte7qwnjzxnzifrv
a2vuptfeatzrm3h1c3p5exrzukq3dvm3eujhcdsnamriyy51c2vybmftzt1vx3jlawnlbkbob3rt
ywlslmnvbtsnamriyy5wyxnzd29yzd1sjeujdzjxmts=}' not found 'driver name'
at com.stimulsoft.library.jdbcadapters.AbstractAdapter.validation(AbstractAdapter.java:89)
at com.stimulsoft.library.jdbcadapters.AbstractAdapter.getJDBCConection(AbstractAdapter.java:78)
at com.stimulsoft.library.xml.objects.ConnectionXml.switchConnectionType(ConnectionXml.java:82)
at com.stimulsoft.library.xml.objects.ConnectionXml.getJDBCConnection(ConnectionXml.java:75)
at com.stimulsoft.actions.TestConnection.getConnection(TestConnection.java:55)
at com.stimulsoft.actions.TestConnection.process(TestConnection.java:40)
at com.stimulsoft.actions.AbstractAction.run(AbstractAction.java:19)
at com.stimulsoft.actions.WebTestConnection.process(WebTestConnection.java:23)
at com.stimulsoft.actions.AbstractWebAction.run(AbstractWebAction.java:18)
at com.stimulsoft.servlet.DesignerFxServlet.runAction(DesignerFxServlet.java:89)
at com.stimulsoft.servlet.DesignerFxServlet.processingParam(DesignerFxServlet.java:82)
at com.stimulsoft.servlet.DesignerFxServlet.processing(DesignerFxServlet.java:58)
at com.stimulsoft.servlet.DesignerFxServlet.doPost(DesignerFxServlet.java:45)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Подключение с использованием JDBC драйвера

Сообщение HighAley »

Здравствуйте.

Данная ошибка была в старых версиях. Скачайте последний библиотеки из Кабинета пользователя.
После чего внимательно посмотрите не остались ли где у вас старые библиотеки, которые попадают в проект.
На сервере очистите каталог Apache Tomcat 7.0.11\work\, а в каталоге Apache Tomcat 7.0.11\webapps\ удалите все упоминания вашего проекта и запустите ваш проект с новыми библиотеками.

Спасибо.
Golland
Сообщения: 80
Зарегистрирован: 03 окт 2012, 17:03

Re: Подключение с использованием JDBC драйвера

Сообщение Golland »

Спасибо! Все получилось! Были оставлены для совместимости старые библиотеки версии 1300. Т.к. без них не работали сервлеты MyLoadReport, MySaveReport. Но на сейчас я так понял они не нужны?
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Подключение с использованием JDBC драйвера

Сообщение Aleksey »

Здравствуйте,

Пожалуйста, посмотрите новый демо пример в приложении.
Так же мы обновили FAQ:
http://www.stimulsoft.com/en/faq/reports-fx-java

Спасибо.
Вложения
webfx.zip
(5.92 МБ) 380 скачиваний
Golland
Сообщения: 80
Зарегистрирован: 03 окт 2012, 17:03

Re: Подключение с использованием JDBC драйвера

Сообщение Golland »

Добрый день, обновил генератор отчетов на версию Stimulsoft Reports.Fx for Java 2012.3. На предыдущей версии все работало корректно. Сейчас есть проблема.
Использую подключение через скрипт MyLoadDataAction

public Connection getConnection() throws ClassNotFoundException, SQLException {
boolean overrideByConnectionString = getConnectionString() != null
&& getConnectionString().equals("needOverride");
boolean overrideByDataSource = getDataSourceName() != null
&& getDataSourceName().equals("DataSourceOverride");
if (overrideByConnectionString || overrideByDataSource) {
Class.forName("com.mysql.jdbc.Driver");
Properties info = new Properties();
info.setProperty("user", "root");
info.setProperty("password", "forrest");
String connectionString = "jdbc:mysql://localhost;databaseName=work_dict;";
return DriverManager.getConnection(connectionString, info);
} else {
return super.getConnection();
}
}
}

Создаю новый отчет, затем новое подключение.New connection выбираю JDBC connection, connection String оставляю пустым. Test проходит успешно. Затем создаю New data source и делаю retrieve columns,- запрос к базе данных срабатывает и нужные мне колонки отображаются. После этого создаю бэнд data и размещаю на нем поле с одной из колонок data source. Делаю preview,- отчет не строится, а Eclipse выдает ошибку

Could not set value: '' класс 'class java.lang.String'
метод 'public final void com.stimulsoft.report.dictionary.databases.StiJDBCDatabase.setConnectionStringEncrypted(java.lang.String) throws java.security.NoSuchAlgorithmException'

Caused by: java.lang.IllegalArgumentException: In connection options '{=}' not found 'driver name'
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Подключение с использованием JDBC драйвера

Сообщение HighAley »

Здравствуйте.

Вероятно ваш DataSource не подходит ни под одно из условий для переопределения Connection.

В примере приведено 2 условия:
  1. overrideByConnectionString
    В этом случае строка подключения должна содержать какое либо ключевое слово, например "needOverride", тогда данная проверка на соответствие этого слова даст true результат.

    Код: Выделить всё

    boolean overrideByConnectionString = getConnectionString() != null
                    && getConnectionString().equals("needOverride");
  2. Либо вы можете построить переопределение на втором условии
    overrideByDataSource
    В этом случае название DataSource должно содержать ключевое слово, по которому будет выполнятся проверка на соответсвие в этом условии

    Код: Выделить всё

    boolean overrideByDataSource = getDataSourceName() != null
                    && getDataSourceName().equals("DataSourceOverride");
    В результате чего условие:

    Код: Выделить всё

    if (overrideByConnectionString || overrideByDataSource)
    будет выполнено и вы сформируете правильную строку подключения.
В вашем случае выполняется:

Код: Выделить всё

return super.getConnection();
что и приводит к ошибке.

Спасибо.
Golland
Сообщения: 80
Зарегистрирован: 03 окт 2012, 17:03

Re: Подключение с использованием JDBC драйвера

Сообщение Golland »

В том-то и дело, что по условию if (overrideByConnectionString || overrideByDataSource) {......}
срабатывает return DriverManager.getConnection(connectionString, info);

При настройке New Connection и New Data Source, test connection и Retrieve Columns проходит успешно(запрос к базе данных выполняется корректно). А при выполнении preview отчета и возникает указанная ошибка.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Подключение с использованием JDBC драйвера

Сообщение HighAley »

Здравствуйте.

Извините за задержу. Нам необходимо дополнительное время для подготовки вам ответа.

Спасибо.
Golland
Сообщения: 80
Зарегистрирован: 03 окт 2012, 17:03

Re: Подключение с использованием JDBC драйвера

Сообщение Golland »

Спасибо, жду.
Ответить