Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: dirk_2909 am 21.07.06 - 09:39:21

Titel: Problem mit Java-Agent
Beitrag von: dirk_2909 am 21.07.06 - 09:39:21
Hallo

Ich habe ein Problem mit einem Java-Agenten der auf einem Domino 6.5.x läuft.

Hier ein kleiner Teil des Agenten:

Code
import java.lang.*;
import java.text.*;
import java.awt.*; 
import java.util.*;
import java.io.*;
import lotus.domino.*;

/**
 * @author XXXXX
 * @version 1.00.000
 * Domino-Agent
 * Dieser Agent ist nur zum Test der Java-Umgebung auf dem Server
 */
public class JavaAgent extends AgentBase { 
	
	
                PrintWriter pw ; 	
		
	public void NotesMain() {

Wenn der Agent anlaüft bekomme ich sofort folgende Meldung in Log:

21.07.2006 08:41:27   JVM: Java Virtual Machine initialized.
21.07.2006 08:41:32   AMgr: Agent ('a_javaAgentTest2006' in 'VISOH\GS\STHOHKAG.NSF') error message: Error loading Agent Class: agents.JavaAgent
21.07.2006 08:41:32   AMgr: Agent ('a_javaAgentTest2006' in 'VISOH\GS\STHOHKAG.NSF') error message: java.lang.ClassNotFoundException: agents.JavaAgent
21.07.2006 08:41:32   AMgr: Agent ('a_javaAgentTest2006' in 'VISOH\GS\STHOHKAG.NSF') error message:    at lotus.domino.AgentLoader.loadClass(Unknown Source)
21.07.2006 08:41:32   AMgr: Agent ('a_javaAgentTest2006' in 'VISOH\GS\STHOHKAG.NSF') error message:    at java.lang.ClassLoader.loadClass(ClassLoader.java:448)
21.07.2006 08:41:32   AMgr: Agent ('a_javaAgentTest2006' in 'VISOH\GS\STHOHKAG.NSF') error message:    at lotus.domino.AgentLoader.runAgent(Unknown Source)


Was muss ich noch in den Agenten importieren, damit er läuft?
Oder liegt es am Server?

Wenn Ihr noch was benötigt sagt Bescheid!

Dirk



Titel: Re: Problem mit Java-Agent
Beitrag von: Ralf_M_Petter am 21.07.06 - 11:11:39
Sorry aber kannst du eventuell mal den ganzen Source rüberreichen, denn bei dem kann man nichts sagen, da man ja nicht weiß hast du das jetzt weggelassen, weil du meinst es tut nichts zur Sache oder fehlt es wirklich.

Also kleinsten Testcase bei dem das Problem auftritt posten und dann kann man auch helfen.

Grüße

Ralf
Titel: Re: Problem mit Java-Agent
Beitrag von: dirk_2909 am 21.07.06 - 11:31:40
Hallo Ralf

Hier ist der komplette Code meines Testagenten:

Code
import java.lang.*;
import java.text.*;
import java.awt.*; 
import java.util.*;
import java.io.*;
import lotus.domino.*;

/**
 * @author XXXX
 * @version 1.00.000
 * Domino-Agent
 * Dieser Agent ist nur zum Test der Java-Umgebung auf dem Server
 */

public class JavaAgent extends AgentBase { 
	
	
	PrintWriter pw ; 	

	//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	
	public void NotesMain() {
			
		
		// Declaration
		String strErrorLine = "" ; // String, um Fehler anzuzeigen etc.
		pw = getAgentOutput(); 		
	
		pw.println( "Starte Testagent...." );
		try { // TRY #1
					
			// Aktuelle Notes-Sitzung
			Session session = getSession();
			// Agentenumgebung holen
			AgentContext agentContext = session.getAgentContext();
			// aktuelle Datenbank holen
			Database db = agentContext.getCurrentDatabase();
			// erforderliche Ansicht initialisieren
			View view = db.getView("vMeineView");
			// erstes Dokument in der Ansicht holen
			Document doc = view.getFirstDocument();
					
	
			try {  // TRY #2
		
				// über alle Dokumente der Ansicht
				while ( doc != null ){ // W #1
					//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
		
					pw.println( "Verarbeite Dokument ;-) ...." );
										
					// nächstes Dokument holen
					doc = view.getNextDocument(doc );
				} // W #1	 		
				
		//############################################################################################		
			} catch(Exception e) { // TRY #2
				
				strErrorLine = "Allgemeiner Fehler bei der Verarbeitung der Dokumente!" ;
				pw.println( strErrorLine );
				e.printStackTrace();
			
			}  // TRY #2
			
			
		} catch(Exception e) { // TRY #1
			
			strErrorLine = "Notwendige Elemente konnten nicht initialisiert werden!" ;
			pw.println( strErrorLine );
			e.printStackTrace();
			 
		}	// TRY #1
		
		pw.println( "Beende Testagent" );
		
	}

}


Danke für die Hilfe

Dirk
Titel: Re: Problem mit Java-Agent
Beitrag von: Boost am 26.07.06 - 12:40:37
Ich hatte das gleiche Problem mit einem meiner Java Agenten.
Ich habe den Code kopiert, den Agenten gelöscht, einen neuen Agenten mit demselben Code kreiert, dann hat es geklappt.
Warum ?  :-:
Titel: Re: Problem mit Java-Agent
Beitrag von: dirk_2909 am 27.07.06 - 07:30:20
@Boost

Danke  ;D

Habe es genau so gemacht und es funzt !!!!
Aber wie kann das?  :P Wofür kompiliert Notes den Agenten  >:D Ich dachte........

Ja Ja! Nicht denken! Ich weiß: Einfach so hinnehmen!  ::)

Dirk
Titel: Re: Problem mit Java-Agent
Beitrag von: flaite am 27.07.06 - 10:13:31
Was ich nicht ganz verstehe ist das doppelte catch.
Code
public void NotesMain() {


// Declaration
String strErrorLine = "" ; // String, um Fehler anzuzeigen etc.
pw = getAgentOutput();

pw.println( "Starte Testagent...." );
try { // TRY #1

// Aktuelle Notes-Sitzung
Session session = getSession();
// Agentenumgebung holen
AgentContext agentContext = session.getAgentContext();
// aktuelle Datenbank holen
Database db = agentContext.getCurrentDatabase();
// erforderliche Ansicht initialisieren
View view = db.getView("vMeineView");
// erstes Dokument in der Ansicht holen
Document doc = view.getFirstDocument();



// über alle Dokumente der Ansicht
while ( doc != null ){ // W #1
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+

pw.println( "Verarbeite Dokument ;-) ...." );

// nächstes Dokument holen
doc = view.getNextDocument(doc );
} // W #1


} catch(Exception e) { // TRY #1

e.printStackTrace();

} // TRY #1

pw.println( "Beende Testagent" );

}
Das ist übersichtlicher. Im StackTrace kann man sowieso nachlesen, wo der Fehler aufgetreten ist.

Funktionaler Code ist ja sowieso nur das, was man leider zwischen den Junit-Tests schreiben muß, weil sonst die Junit-Tests keinen Sinn mehr machen. Deshalb sollte man das möglichst einfach halten.
Titel: Re: Problem mit Java-Agent
Beitrag von: dirk_2909 am 27.07.06 - 11:04:32
Zitat
Was ich nicht ganz verstehe ist das doppelte catch.


Ist ja auch nur ein Testagent.  ::)

Habe Teile aus einem bestehenden Agenten genommen und einige Bereiche gelöscht.

In dem "produktiven" Agenten, sind noch mehr "Catch" vorhanden, da ich je nach Fehler weitere Bearbeitungen mit dem Dokument machen muss.

Wie gesagt: Der gezeigte Code ist nur von einem Testagent, um mein Problem "Error loading....." zur erläutern. Inhaltlich habe ich (momentan) keine Probleme mit dem Agenten!

mfg