Lotus и xls

Тема в разделе "Lotus + Java + LS2J", создана пользователем NickProstoNick, 15 май 2012.

  1. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Всем привет!
    вот пытаюсь адаптировать код под агент.
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">код (для истории)</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='java'>import java.sql.*;

    public class DemoDriver {
    public static void main(String[] args) {
    try {
    // load the driver into memory
    Class.forName("org.aarboard.jdbc.xls.XlsDriver");

    // create a connection. The first command line parameter is assumed to
    // be the directory in which the .xls files are held
    Connection conn = DriverManager.getConnection("jdbc:aarboard:xls:" + args[0]);

    // create a Statement object to execute the query with
    Statement stmt = conn.createStatement();

    // Select the columns from sample.xls
    ResultSet results = stmt.executeQuery("SELECT * FROM sample");

    // dump out the results
    while (results.next()) {
    System.out.println("ID= " + results.getString("ID") + " NAME= " + results.getString("NAME"));
    }

    // clean up
    results.close();
    stmt.close();
    conn.close();
    }
    catch (Exception e) {
    System.out.println("Oops-> " + e);
    }
    }
    }[/CODE]Но вот как-то не получается... в итоге получаю такую ошибку:
    Код (Text):
    05/15/2012 14:26:23  Agent error: java.lang.ClassNotFoundException: org.aarboard.jdbc.xls.XlsDriver
    05/15/2012 14:26:23  Agent error: at lotus.domino.AgentLoader.loadClass(Unknown Source)
    05/15/2012 14:26:23  Agent error: at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
    05/15/2012 14:26:23  Agent error: at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
    05/15/2012 14:26:23  Agent error: at java.lang.Class.forName0(Native Method)
    05/15/2012 14:26:23  Agent error: at java.lang.Class.forName(Class.java:120)
    05/15/2012 14:26:23  Agent error: at JavaAgent.NotesMain(Unknown Source)
    05/15/2012 14:26:23  Agent error: at lotus.domino.AgentBase.runNotes(Unknown Source)
    05/15/2012 14:26:23  Agent error: at lotus.domino.NotesThread.run(NotesThread.java:249)
    Как решить вопрос?
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    класс нот фаунд - это когда его не нашла жвм :)
    если не секрет - зачем залезать в хехель, через опуОДБЦ?
     
  3. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    а какие варианты на солярисе?
     
  4. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Видел это... но мозгов не хватило включить все это :)
    С Java вообще опыта нет :(

    Если бы кто показал-рассказал.... пример бы посмотреть

    Хотя не совсем удобный способ доступа... ни отсортировать толком, ни фильтр установить... SELECT мне кажется удобней
     
  5. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
  6. Zeka

    Zeka Well-Known Member

    Регистрация:
    1 сен 2009
    Сообщения:
    219
    Симпатии:
    0
    на пальцах:
    java.lang.ClassNotFoundException: org.aarboard.jdbc.xls.XlsDriver - значит, что ява не нашла нужный класс XlsDriver.
    Он находится в JAR xlsjdbc-1.6.jar.
    Что бы заработало - положи этот jar в папку *lotus*\jvm\lib\ext и перезагрузись.
     
  7. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Добавил... получил другую ошибку...

    Agent error: java.lang.UnsupportedClassVersionError: Unsupported major.minor version 48.0

    похоже это уже проблема с POI
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    это версия жвм - надо брать сборку под соответ версию
    вероятно запуск осущ. на жвм 1.4 (7-ая домина) а сборка под 1.5+
    судя по названиям - надо эту http://sourceforge.net/projects/xlsjdbc/fi...JE%201.4%20api/
    возможно править и пересобирать позднии версии (из сорцов), но полагаю, в данном случае - не вариант
    для POI - таже история, последняя версия JDK 1.5 or higher
    слово jdk означает требование при сборке, но оно и даёт результат (обычно) - jre 1.5+ (т.е. рантайм д.б. не ниже)

    старые либы могут давать свои особенности, ябы не советовал... варианты выхода:
    -не использовать этот подход
    -поднять версию домины
     
  9. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Ну с версиями вроде бы разобрался... но получил новые ошибки после этого
    Код (C++):
    // Select the columns from sample.xls
    ResultSet results = stmt.executeQuery("SELECT * FROM book");
    book - название xls-файла

    Код (Text):
    05/17/2012 09:51:43  Agent error: java.lang.ArrayIndexOutOfBoundsException
    05/17/2012 09:51:43  Agent error: at org.aarboard.jdbc.xls.XlsResultSet.<init>(XlsResultSet.java:57)
    05/17/2012 09:51:43  Agent error: at org.aarboard.jdbc.xls.XlsStatement.executeQuery(XlsStatement.java:347)
    05/17/2012 09:51:43  Agent error: at ClassJDBC.xlsCn(Unknown Source)
    05/17/2012 09:51:43  Agent error: at JavaAgent.NotesMain(Unknown Source)
    05/17/2012 09:51:43  Agent error: at lotus.domino.AgentBase.runNotes(Unknown Source)
    05/17/2012 09:51:43  Agent error: at lotus.domino.NotesThread.run(NotesThread.java:249)
     
  10. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    ArrayIndexOutOfBoundsException - разве ниочём не говорит ;)
    а как разобрались с версиями - домину подняли?
     
  11. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    я конечно догадываюсь, но хотелось бы уточнить... ;)
    Похоже на ошибку доступа к несуществующему элементу массива... но не понятно откуда?... я вроде бы нигде к массивам не обращаюсь
    Я так понимаю это где-то внутри библиотеки POI.

    Нарыл jar под свою версию. ^_^ Точнее то что перестало ругаться на версию ;)

    А вообще.. я и java... как в анекдоте... "милиционеры делятся на сильных и умных" :)
     
  12. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    про версии jar я сразу предупредил - и предложил отказаться от этой идеи
    собсно имеем подтверждение моих опасений
     
  13. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    ЕСТЬ! получилось!
    Проблема собственно в интерпретации "*" в SELECT... кто бы мог подумать что это понимается как имя поля, а не все поля.
    В общем пришлось перечислять все поля.
     
  14. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    ну вот и славно, а по селекту, судя из кода по первой ссылке - в 1.6 эта фича изменена ;) (о чём и говорил)

    Добавлено: насколлько помню, в старых версиях POI эксель обрабатывается в памяти...
    что означает получение аутофмемори на "больших" файлах ^_^
     
  15. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Посмотрим ;) приедет файл - буду смотреть ^_^
     
  16. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Кстати... POI работает самый новый... ;)
    Так что понизил версию только драйвера.
     
Загрузка...

Поделиться этой страницей