Domino 9 und frühere Versionen > ND6: Entwicklung
existiert die URL ???
fritandr:
Hallo Axel,
Danke frür den weiteren Tip. Ich hoffe, daß ich heute abend noch dazu komme, das zu testen. Dann gibt es morgen früh das Ergebnis.
Das mit meinem "Connection refused" kommt wohl daher, daß ich versuicht habe, Links aufzurufen, die eine Authentifizierung verlangen.
Das Problem kann ich also hoffentlich noch weiter eingrenzen.
Viele Grüße
Andreas
fritandr:
Hallo Axel,
inzwischen habe ich Deinen Agenten soweit, daß ich in der Java Console die einzelnen Fälle nachvollziehen kann.
---------------------------------------------------------------------
import lotus.domino.*;
import java.net.*;
import java.io.*;
public class JavaAgent extends AgentBase {
public void NotesMain()
{
try
{
Session ns = getSession();
AgentContext agentContext = ns.getAgentContext();
Database ndb = agentContext.getCurrentDatabase();
View nvw = ndb.getView("test");
Document ndocUrl = nvw.getFirstDocument();
while (ndocUrl != null)
{
String urlAsString = ndocUrl.getItemValueString("link");
try {
URL url = new URL(urlAsString);
InputStream in = url.openStream();
in.close();
System.out.println("URL ist da: "+urlAsString);
ndocUrl.replaceItemValue("linkstatus", "URL OK");
}
catch (MalformedURLException e) //URL nicht da
{
System.out.println("URL not found: " + urlAsString);
ndocUrl.replaceItemValue("linkstatus", "URL not Found");
}
catch (UnknownHostException e)
{
System.out.println("Unknown Host: " + urlAsString);
ndocUrl.replaceItemValue("linkstatus", "Unknown Host");
}
catch (Exception e)
{
e.printStackTrace();
}
ndocUrl = nvw.getNextDocument (ndocUrl);
} // end while
}
catch (NotesException e)
{
e.printStackTrace();
}
} //end NotesMain
} // end Class
---------------------------------------------------------------------
Jetzt fehlt noch der entscheidende Tip, wie ich die Info nun in das Dokument zurückgeschrieben bekomme. Die Anweisung " ndocUrl.replaceItemValue("linkstatus", "Unknown Host"); " scheint Ergebnislos zu verpuffen. Muß ich das Dokument nach dem replaceItemValue noch aktualisieren, speichern oder so?
Übrigens. Das hier ist ein Problem, an dem ich aus rein privatem Interesse arbeite. Dementsprechend ist es überhaupt nicht zeitkritisch. Wenn Du also der Meinung bist, daß ich jetzt versuchen sollte, mit der Designerhilfe weiterzukommen, um einen größeren Lerneffekt zu erzielen, dann versuche ich erstmal, alleine weiterzukommen.
Nochmals Danke für Deine Hilfe.
fritandr
Glombi:
Hi,
in der Tat, Du must das Dokument noch speichern:
ndocUrl.replaceItemValue("linkstatus", "Unknown Host");
ndocUrl.save(false, false, true);
bei den anderen Stellen genauso...
Andreas
fritandr:
Hallo,
und hier nun die vorläufige Endversion ;D
Ich habe noch eine SocketException Abfrage eingebaut, um auch das Connection Refused,... abzufangen.
Nochmals vielen Dank an alle, die mir geholfen haben.
Viele Grüße
fritandr
------------------------------------------------------------------------
import lotus.domino.*;
import java.net.*;
import java.io.*;
public class JavaAgent extends AgentBase {
public void NotesMain()
{
try
{
Session ns = getSession();
AgentContext agentContext = ns.getAgentContext();
Database ndb = agentContext.getCurrentDatabase();
// View nvw = ndb.getView("vwAllLinks");
View nvw = ndb.getView("test");
Document ndocUrl = nvw.getFirstDocument();
while (ndocUrl != null)
{
String urlAsString = ndocUrl.getItemValueString("link");
System.out.println("Prüfe: "+urlAsString);
try {
URL url = new URL(urlAsString);
InputStream in = url.openStream();
in.close();
System.out.println("URL ist da: "+urlAsString);
ndocUrl.replaceItemValue("linkstatus", "URL OK");
ndocUrl.save(false, false, true);
}
catch (MalformedURLException e) //URL nicht da
{
System.out.println("URL not found: " + urlAsString);
ndocUrl.replaceItemValue("linkstatus", "URL not Found");
ndocUrl.save(false, false, true);
}
catch (UnknownHostException e)
{
System.out.println("Unknown Host: " + urlAsString);
ndocUrl.replaceItemValue("linkstatus", "Unknown Host");
ndocUrl.save(false, false, true);
}
catch (SocketException e)
{
System.out.println("SocketConnectiont: " + urlAsString);
ndocUrl.replaceItemValue("linkstatus", "SocketConnection Error");
ndocUrl.save(false, false, true);
}
catch (Exception e)
{
e.printStackTrace();
}
ndocUrl = nvw.getNextDocument (ndocUrl);
} // end while
}
catch (NotesException e)
{
e.printStackTrace();
}
} //end NotesMain
} // end Class
Glombi:
@fritandr:
Schön dass es klappt! Wenn Du nix dagegen hast, werde ich mir den Code mal ausborgen, da ich auch eine Datenbank habe, in der Links verwendet werden. Falls ich noch was ergänze, poste ich es.
Andreas
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln