Получить Значение Из Java

Тема в разделе "Lotus + Java + LS2J", создана пользователем JohnLemon, 29 сен 2014.

  1. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Подскажите пожалуйста, у меня есть класс в библиотеке (Script Libraries) JLib генерирует случайное значение
    Код (Java):
    import java.util.Random;
     
    public class random {
       public static void main(String[] args) {
          Random rand = new Random();
          for (int i = 0; i < 8; ++i)
             System.out.print((rand.nextInt(9) + 1) + "");
          }
    }
    Как это значение записать в SessionScope в xpages, если можно то с примером???
     
  2. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    происходит некоторая путаница...
    JS - не имеет (штатно) доступов ко всему спектру либ java http://stackoverflow.com/a/1645177
    как и обратно, sessionScope понятие для JS, в java части - кусок движка xPages (он много чего вкючает) оперирует JSF (бинами и прочим)
    взаимодействие с java можно осуществлять так http://www-10.lotus.com/ldd/ddwiki.nsf/dx/..._java_xpage.htm
    просто непонятно - зачем нужен именно SessionScope

    Добавлено: со "штатными" либами http://www-10.lotus.com/ldd/ddwiki.nsf/dx/...047AMWEBJ9A.htm

    Добавлено: еще нужно помнить про http://per.lausten.dk/blog/2013/05/how-to-...s-and-java.html
     
  3. lmike

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

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

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Так все сложно неужели я не могу просто вызвать код в Script Libraries и получить от него ответ ??? Вообще мне нужно будет просто создавать документ с этим значением...
     
  5. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    просто вызвать код можно с одного уровня
    а код с клиента, вызывающий код сервера - это др. модель взаимодействия
    а разные слои сервера - тоже по-разному взаимодействуют
    есть JVM, поверх неё rhino (это JS исполняемый в JVM)
    результаты привязаны к отдаче страниц с сервера (для случая xPages)

    Добавлено: да и ваще - излагайте полную задачу а не ваши взгляды на архитектуру - будет проще подыскать решение

    Добавлено:
    в java есть классы для домины - никаких проблем с созданием доков по месту и не надо усложнять ;)
     
  6. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Мне необходимо выполнить код, который в первом сообщении темы. И записать результат в документ, я просто не могу понять где его лучше сделать, через агента, через scriptlibrary или через java application, не пойму зачем столько вариантов ), а самое важное что я не могу понять это то как его запустить и проверить работает он вообще или нет ). Я так понимаю что я что то не доделываю а что не могу понять
     
  7. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    java код, напрямую, исполняется только в агентах (еще в аплетах - но это устаревший подход :) ), остальное написано для вариантов - когда нужно что-то ещё
     
  8. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    в дизайнере есть браузер классов для java, в хелпе примеры
     
  9. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Создал такой код в агенте
    Код (Java):
    import java.util.Vector;
    import lotus.domino.*;
     
    public class JavaAgent extends AgentBase {
       String type;
       String from;
       String department;
       String costCenter;
       Vector items;
       String processed;
       
       public void write(Document doc) throws NotesException {
          try {
             Session session = getSession();
             AgentContext agentContext = session.getAgentContext();
             doc.replaceItemValue("From", from);
             doc.replaceItemValue("Department", department);
             doc.replaceItemValue("CostCenter", costCenter);
             doc.replaceItemValue("Items", items);
             doc.replaceItemValue("Processed", processed);
             // (Your code goes here)
             
          } catch(Exception e) {
             e.printStackTrace();
          }
       }
    }
    Как мне его проверить, запустить ??
    Делаю рун, он мне предлагает Апплет или приложение и ни одно ни второе не запускается. Как мне проверить изменяет ли он значения или нет (( ?
     
  10. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    не надо рун из дизигнера - запускайте как обычный агент (жмакнул иконку БД - нашел в Actions меню агент)
    вы ниразу агенты не запускали?
    и да - у агента д.б. public void NotesMain()
    он и запускается (свой write туда и суйте)

    Добавлено:
    открыть док и проверить
    и да... где сохранение дока?

    Добавлено: еще момент - нигде не указано как получается док - вы в воздухе что-то обновляете?
    честно - не понимаю - в хэлпе куча примеров и объяснений, неужто трудно прочесть?!

    Добавлено: прям топик в хэлпе Examples: Running a Java program
    там и из внежней jvm и из агентов и из сервлетов... сидя на потолке
     
  11. lmike

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

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

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Нет :( , Запустил через толстого клиента, в дизайнере не нашел :lol: . Сделал по хелпу теперь все норм, осталось только
    по отладке почитать )
     
  13. lmike

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

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

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Блин вообще не понимаю вот сделал код агента должен передавать гет запрос
    Код (Java):
    import java.net.*;
    import lotus.domino.*;
     
    public class JavaAgent extends AgentBase {
       public void NotesMain() {
          try {
             Session session = getSession();
             AgentContext agentContext = session.getAgentContext();
             URL url = new URL("http://api.prostor-sms.ru/messages/v2/send/?login=login&password=pass&phone=+7&text=Send sms");
             url.openConnection();
          } catch(Exception e) {
             e.printStackTrace();
          }
       }
    }
    Запускаю через толстого клиента, в консоле ошибка :
    Exception in thread "AgentThread: JavaAgent" java.lang.Error: Unresolved compilation problem:
    Type mismatch: cannot convert from URLConnection to URL
    Код (Text):
    at JavaAgent.NotesMain(Unknown Source)
    at lotus.domino.AgentBase.runNotes(Unknown Source)
    at lotus.domino.NotesThread.run(Unknown Source)
    Что не так как сделать правильно ???
     
  15. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    этот код нормально работает в 9-ой нотусне и в 8.5 тоже (полагаю)
     
  16. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    JohnLemon
    КМК, при вызове url.openConnection() должен возвращаться объект URLConnection
    Может быть я ошибаюсь, но по рефам похоже так.
     
  17. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    У меня 9 но смс не приходит )
     
  18. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    При вызове должна смс приходить хотя бы ((
     
  19. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    JohnLemon
    Вот если идет стек ошибки в консоль, откуда смс придет?
    Ошибка говорит, что не может преобразовать URLConnection в URL
    Я написал, что данная ошибка возникает потому что при вызове этого метода возвращается объект URLConnection
    Или у вас уже ошибка пропала и все работает, кроме прихода смс?
     
  20. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Ошибки нету, код тот же херь какая та, сейчас предупреждение:
    смс не приходит, деньги не списываются )
     
Загрузка...

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