AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
11.07.20 - 19:18:58
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino Sonstiges
| |-+  Java und .NET mit Notes/Domino (Moderatoren: Axel, m3)
| | |-+  Java Agent Fehlermeldungen nach Kopie
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Java Agent Fehlermeldungen nach Kopie  (Gelesen 8088 mal)
v_haderer
Junior Mitglied
**
Offline Offline

Geschlecht: Männlich
Beiträge: 88


« am: 06.04.16 - 13:00:58 »

Hallo Zusammen!
Ich arbeite gerade an einem ziemlich nervigen Problem:

Ich haben einen Java-Agenten in einer lokal liegenden DB erstellt - er funtkioniert einwandfrei ohne Fehlermeldung und verrichtet seinen Dienst.
Selbigen Agent habe ich 1:1 in eine zweite, ebenfalls lokal liegende DB kopiert (inkl aller Jar's)...dort erhalte ich beim Start mit RunOnServer folgende Fehler die mir leider überhaupt nicht weiterhelfen:

   at JavaAgent.NotesMain(Unknown Source)
   at lotus.domino.AgentBase.runNotes(Unknown Source)
   at lotus.domino.NotesThread.run(Unknown Source)


Gibts hier irgendeinen Trick :-) ?
Gespeichert
jBubbleBoy
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1187



« Antworten #1 am: 06.04.16 - 13:48:51 »

Kannst du den kopierten Java-Agenten öffnen und speichern (kompilieren)?
Gespeichert

Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.9
--
Nur ein toter Bug, ist ein guter Bug!
it898ur
Senior Mitglied
****
Offline Offline

Beiträge: 467


« Antworten #2 am: 06.04.16 - 14:25:19 »

Hallo,

aber irgendwo ist hier ein logischer Fehler - Du kopierst einen Agenten von einer lokalen DB zu einer anderen lokalen DB und willst ihn dann mit RunOnServer starten ?

Gruß

André
Gespeichert
v_haderer
Junior Mitglied
**
Offline Offline

Geschlecht: Männlich
Beiträge: 88


« Antworten #3 am: 06.04.16 - 15:27:15 »

Nö da ist kein logischer Fehler :-)
Ich habe lokal entwickelt, den Agent auf ne ServerDB kopiert -> ist nicht gelaufen. Zur genaueren Untersuchung
habe ich eine weitere lokale DB verwendet in die ich reinkopiert habe.

Der Agent lässt sich öffnen, speichern und kompilieren, alle Libs sind vorhanden :-(
Gespeichert
jBubbleBoy
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1187



« Antworten #4 am: 06.04.16 - 15:36:34 »

Könntest du einmal den gesamten Stacktrace posten?
Was passiert wenn du eine Kopie der DB anlegst, kommt dann auch der Fehler?
Den Agenten hast du zu 100% selber erstellt?
Gespeichert

Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.9
--
Nur ein toter Bug, ist ein guter Bug!
v_haderer
Junior Mitglied
**
Offline Offline

Geschlecht: Männlich
Beiträge: 88


« Antworten #5 am: 07.04.16 - 07:17:31 »

Guten Morgen,
ja der Agent ist von mir gänzlich neu erstellt worden.

com.itextpdf.text.exceptions.InvalidPdfException: PDF header signature not found.
   at com.itextpdf.text.pdf.PRTokeniser.getHeaderOffset(PRTokeniser.java:229)
   at com.itextpdf.text.pdf.PdfReader.getOffsetTokeniser(PdfReader.java:497)
   at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:176)
   at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:219)
   at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:207)
   at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:197)
   at JavaAgent.NotesMain(Unknown Source)
   at lotus.domino.AgentBase.runNotes(Unknown Source)
   at lotus.domino.NotesThread.run(Unknown Source)


Ich habe nun ganz oldschool versucht mich an die Stelle hinZuPrinten ;-)

Code:
public void NotesMain() {
      try {      
      Session session = getSession();

      AgentContext agentContext = session.getAgentContext();
      DocumentCollection dc = agentContext.getUnprocessedDocuments();
      Document doc = dc.getFirstDocument(); //
          String form_template = doc.getItemValueString("pdfQuellPfad");

          String form_filled = doc.getItemValueString("pdfZielPfad");

     
          // Init PDF
          PdfReader reader = new PdfReader(form_template);      //  <- bis hier und nicht weiter
                  .........
                  ...

     

Genau bei obiger letzten Codezeile, dem Instanzieren des PDfReaderObjects, dürfte das Problem liegen.  Sad Huh
Gespeichert
Ralf_M_Petter
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1879


Jeder ist seines eigenen Glückes Schmied


WWW
« Antworten #6 am: 07.04.16 - 10:22:54 »

Auf welchem Pfad liegt den das PDF. Ich nehme mal stark an, der Server oder der Agent am Server darf darauf nicht zugreifen. oder das PDF ist ungültig.
Gespeichert

Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.
Ralf_M_Petter
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1879


Jeder ist seines eigenen Glückes Schmied


WWW
« Antworten #7 am: 07.04.16 - 10:26:12 »

Übrigens noch ein Tipp. Aktiviere doch die Java Debug Informationen wie in http://www.bizzybee.be/2013/01/11/debugging-java-code-in-domino-designer-8-5-or-9/ beschrieben. Dann musst du auch nicht rätseln wo der Fehler auftritt, bzw. lass den Agent doch im Debugger laufen um genauer zu sehen, was das Problem ist. Die Debugging Session sollte natürlich nicht auf einem Produktivserver laufen.
Gespeichert

Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.
v_haderer
Junior Mitglied
**
Offline Offline

Geschlecht: Männlich
Beiträge: 88


« Antworten #8 am: 07.04.16 - 10:37:59 »

Hey danke für den Tipp :-) !

Des Rätsels Lösung unabhängig davon ->

Code:
DocumentCollection dc = agentContext.getUnprocessedDocuments();

Wo keine UnprocessedDocuments da auch kein Doc und somit ein leerer string   'form_template'.

Somit funktioniert diese Vartiante deutlich besser ;-)  ->

Code:
public void NotesMain() {
      try {
                  Session session = getSession();
     Database database = session.getCurrentDatabase();

     AgentContext agentContext = session.getAgentContext();    
     Agent agent = agentContext.getCurrentAgent();

         Document doc = database.getDocumentByID(agent.getParameterDocID());    
     String form_template = doc.getItemValueString("pdfQuellPfad");          
         PdfReader reader = new PdfReader(form_template);

Danke für eure Hilfe!
Gespeichert
flaite
Gold Platin u.s.w. member:)
*****
Offline Offline

Beiträge: 2966


WWW
« Antworten #9 am: 07.04.16 - 13:23:09 »

Tendentiell machst Du als Java Entwickler ziemlich viele häßlich aussehende null checks

Code:
if (variableMhhMhhMhh == null) {
  throw new IllegalStateException("variableMhhMhhMhh is null, but shouldn't.");
}

und auch

Code:
if (collection.size() <= 0) {
  throw new IllegalStateException("Collection xxxx is empty");
}

was irgendwie dasselbe ist.

Das macht den code DEFINITIV robuster. Falls ein Fehler auftritt, ist der stack trace einfacher zu verstehen.
So ist das letztlich ein Folgefehler, der sehr viel später in itext auffällt.

Was Du der externen Bibliothek (d.h. itext) über den Zaun wirfst, validierst Du so vorher auf Korrektheit.



 
« Letzte Änderung: 07.04.16 - 13:41:18 von flaite » Gespeichert

Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: