magistr
Green Team
- 03.11.2015
- 17
- 1
У меня интересный вопрос.
Написал java-агента, который выполняет HTTP запрос на сайт (не важно на какой). Так вот, агент отказался в консоль выводить ответ с сервера - с криком
java.lang.NullPointerException
at sun.net.
at sun.net.
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 JavaAgent.NotesMain(Unknown Source)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)
at sun.net.
Ссылка скрыта от гостей
at sun.net.
Ссылка скрыта от гостей
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 JavaAgent.NotesMain(Unknown Source)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)
Всё супер, раз всё работает - я решительно запускаю второго агента (точно такого же, это для теста делал) опять в консоль крик об ошибке - NullPointerException её мать!!! Перезагружаю Lotus, по порядку запускаю всех агентов, открываю консоль - и всё работает... Странно, подумал я, и вот прошу помощи у Вас. Что с этим делать? Как исправить работу агента, чтобы его консоль не "убивала"?
Я так понял, что консоль каким-то образом влияет на работу агентов (пока встретил такое только при HTTP запросах). На всякий случай код агента - кому интересно попробуйте у себя.
P.S.
IBM Notes 9 Social Edition
Release 9.0.1
Revision 20131022.1138 (Release 9.0.1)
Standard Configuration
Server build number: Release 9.0.1FP2
База старенькая, с шаблона делал: File format: R85 (51:0) ODS version: 51 соответственно ))
Release 9.0.1
Revision 20131022.1138 (Release 9.0.1)
Standard Configuration
Server build number: Release 9.0.1FP2
База старенькая, с шаблона делал: File format: R85 (51:0) ODS version: 51 соответственно ))
Java:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
String query = "https://ya.ru"; // например
HttpURLConnection connection = null;
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
connection = (HttpURLConnection) new URL(query).openConnection();
connection.setRequestMethod("GET");
connection.setUseCaches(false);
connection.setConnectTimeout(250);
connection.setReadTimeout(250);
connection.connect();
StringBuilder sb = new StringBuilder();
System.out.println(connection.getResponseCode());
if (HttpURLConnection.HTTP_OK == connection.getResponseCode()) {
BufferedReader in = new BufferedReader (new InputStreamReader(connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
System.out.println(sb.toString());
}
}
catch(Exception e) {
e.printStackTrace();
}
}
}