Проблемы с агентом Domino при работе в Notes Client - отлично работает на сервере

1

У меня есть java-агент, который обрабатывает HTTP-запросы с помощью jsoup. Этот агент отлично работает, когда я запускаю его вручную с консоли сервера. но даст ошибку, когда я запустил ее на клиенте (щелкните правой кнопкой мыши по агенту и запустите)

  • Агент настроен на вариант 2. Разрешить ограниченные операции и устанавливается в "Выбор меню действий" и "Все документы в базе данных",
  • Я установил одинаковые параметры безопасности в файле java.policy как на сервере, так и на клиенте. Я также пытался запустить свой агент на сервере со "стандартным" файлом java.policy, и это тоже помогло, поэтому проблема не связана с файлом java.policy.

Это ошибка, которую я получаю в консоли отладки Java при запуске агента в клиенте заметок (v9.0.1)

java.lang.NullPointerException
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:727)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:654)
at COM.ibm.JEmpower.applet.http.HttpURLConnection.getInputStream(HttpURLConnection.java:411)
at COM.ibm.JEmpower.applet.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:703)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:399)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:453)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:434)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:181)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:170)
at JavaAgent.NotesMain(Unknown Source)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)

это параметры java.policy, которые я использую в своем клиенте Notes (и на некоторых серверах)

grant {разрешение java.util.PropertyPermission "http.keepAlive", "читать, писать"; };

grant {разрешение java.security.AllPermission; }

Вот код агента

public class JavaAgent extends AgentBase {

public void NotesMain() {

  try {
      Session session = getSession();
      AgentContext agentContext = session.getAgentContext();
      Database db = session.getCurrentDatabase();
      lotus.domino.Document d = db.getView("inbox").getFirstDocument();

      String url = d.getItemValueString("Subject"); 
      Document x = Jsoup.connect(url).userAgent("Mozilla").get();
      Elements p = x.select("p");
      RichTextItem rt = (RichTextItem) d.getFirstItem("Body");
      rt.appendText(p.text());
      d.replaceItemValue("Processed", "1");
      d.save();

  } catch(Exception e) {
      e.printStackTrace();
   }

}}

Как я могу заставить агента работать на моем локальном клиенте Notes?

  • 0
    Я знаю, что не все библиотеки на сервере доступны с клиента. Мой взлом веб-сервиса с XPages работает с сервера, а не с клиента
  • 1
    Можете ли вы проверить, в порядке ли ответ (используя .method и .response вместо .get ()). Похоже, у него нет действительного ответа, в то время как у него есть код ответа. Иногда это проблема с прокси-сервером, он возвращает 302 и ответа нет (Вы находитесь за прокси-сервером?)
Показать ещё 2 комментария
Теги:
security
xpages
lotus-domino
agent

1 ответ

3
Лучший ответ

Прочтите это: Ошибки подключения HTTP-агента Java-агента
Это решило проблему для меня.

После многих перезапусков и перетаскиваемых настроек, а также много вытягивания волос, я смог найти набор шагов, которые могли бы вызвать проблему или предотвратить ее. Чтобы заставить код работать:

  1. Откройте клиент Notes
  2. Запустить агент Java
  3. Работает HTTP-соединение

Чтобы получить ошибку:

  1. Откройте клиент Notes
  2. Откройте консоль отладки Java
  3. Запустить агент Java
  4. Не удалось выполнить HTTP-соединение

Что-то об открытии Java Debug Console перед запуском агента, который заставляет Notes использовать COM.ibm.JEmpower.applet.http.HttpURLConnection, чтобы установить соединение вместо sun.net.www.protocol.http.HttpURLConnection и Версия класса JEmpower - это тот, который сломан (за каждое экспериментирование и APAR, упомянутые ранее).

Как ни странно, если я запустил агент, а затем откройте консоль отладки и снова запустите агент, все будет в порядке. Это открытие консоли отладки, прежде чем я сделаю все, что вызывает проблемы.

  • 1
    Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится.
  • 0
    Хорошо, я исправлю свой ответ.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню