Autor Thema: Externes Package in einem Java-Agent  (Gelesen 3053 mal)

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Externes Package in einem Java-Agent
« am: 17.05.04 - 11:54:46 »
Hallo,

derzeit kämpfe ich mit einem externen Package, dass ich in meinen Java-Agenten einbinden soll.

Ich habe zwei Dateien konsis.jar und app-xml.jar. Diese enthalten verschiedenen Klassen, die ich in meinem Agenten benutzen muss. Leider funktioniert das aber nicht. Wahrscheinlich mache ich einen Denkfehler (es ist das erste mal, dass ich in Notes mit externen Klassen arbeite).

Ich habe folgendes gemacht:
1. Beide jar-Dateien in "Notes\Data\domino\java" kopiert
2. Auf Systemebene (DOS-Fenster) folgendes definiert:
SET CLASSPATH=C:\Notes\Data\domino\java\konsis.jar; C:\Notes\Data\domino\java\app-xml.jar
3. Im Agentenkopf folgendes definiert:
package de.idl.javaclient.util;

import java.rmi.RemoteException;

import de.idl.application.common.Error;
import de.idl.application.dataexchange.Account;
...

Ich bekomme immer folgende Fehlermeldung:
class de.idl.application.common.Error not found in import
usw.

Außerdem noch ein kleineres Problem:
Wenn ich den Agenten einmal gespeichert habe, steht über der ersten Zeile die übliche Klassenangabe
- de/idl/javaclient/util/JavaAgent.java
Wenn ich jetzt den fehlererzeugenden Agentenheader wieder entferne, bleibt dies stehen und der Agent läuft nicht mehr. Kann man das wieder rückgängig machen oder muss man (wie ich es im Moment tue) den Agenten über die Zwischenablage neu erstellen?

Ich wäre Euch sehr dankbar, wenn Ihr mir sagen könnt, was ich falsch mache.

Im Voraus vielen Dank,

Joachim
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Hernan Cortez

  • Gast
Re:Externes Package in einem Java-Agent
« Antwort #1 am: 17.05.04 - 17:37:24 »
Hi,

bisher hat noch keiner geantwortet, also muss ich das wieder machen. Vermutlich kommt dann wieder Huhsmiester Krause, Ratingen bei Düsseldorf, und erklärt, dass ich dem heroische Leben eines deutschen IT-Angestellten einfach nicht gewachsen bin. Egal… Man tut, was man kann und gibt sein bestes.  

Ich hab mir nun das Folgende überlegt:
In der Java-Entwicklung geht es imho weniger um Kreativität oder so was, sondern mehr um das richtige Abtippen, von dem, was in den Büchern steht.
Praktischerweise handelt es sich bei den Java Fragen zumeist um Anfängerfragen. Das ist gut, weil ich finde die Antworten stets über den Index des freiverfügbaren Buches http://www.javabuch.de/ (Handbuch der Javaprogrammierung). Ich kopiere dann die absoluten Links von meinem Lapptop in das Posting und ihr bekommt dann schon raus wie der relative Link heisst.

derzeit kämpfe ich mit einem externen Package, dass ich in meinen Java-Agenten einbinden soll.
Dramatisierst du nicht ein bischen? Kämpfen? Hey. Make love not war. Alles easy.
 
Also erstmal hast du packages nicht richtig verstanden.
Muß das unbedingt in dem package de.idl.javaclient.util sein ?
Geht das nicht ohne packages?
Wenn mit packages musst du die Zeile schon drinlassen. Kompiliereinheiten (also die .java und die .class Dateien) spiegeln die packages Struktur wieder. Die Agent.java wird in dem Verzeichnis <AgentRoot>/de/idl/javaclient/util abgespeichert. Vielleicht findest du irgendwo in Notes-Data oder im Notes-Programmverzeichnis diese Dateistruktur.
Diese lustige Zeile, die du unvorsichtigerweise gelöscht hast, scheint bedeutsam für den Designer zu sein, um die .class in das richtige Verzeichnis zu kopieren.
Genauere Infos findest du im Handbuch der Javaprogrammierung: file:///E:/Java_Docu/javabuch3/html/k100082.html#ixa100765

Ich habe zwei Dateien konsis.jar und app-xml.jar. Diese enthalten verschiedenen Klassen, die ich in meinem Agenten benutzen muss. Leider funktioniert das aber nicht. Wahrscheinlich mache ich einen Denkfehler (es ist das erste mal, dass ich in Notes mit externen Klassen arbeite).

Ich habe folgendes gemacht:
1. Beide jar-Dateien in "Notes\Data\domino\java" kopiert
2. Auf Systemebene (DOS-Fenster) folgendes definiert:
SET CLASSPATH=C:\Notes\Data\domino\java\konsis.jar; C:\Notes\Data\domino\java\app-xml.jar

Nein. Du machst keinen Denkfehler. Du machst einen Lesefehler. In der Domino Dokumentation steht das auch deutlich: Du musst die externen packages bei der Domino VM anmelden. Das geht über 2 Wege. Der 1. Weg ist wg. von mir auch noch nicht so ganz 100% verstandene Phänomenen von Java Class Loading wohl der bessere.  
1.  öffne nach belieben die Hilfe vom Domino Designer oder vom Domino Administrator und gebe „JavaUserClasses“ ein. Nehme den ersten Treffer und wende was da steht auf deinen Fall an. Starte den Domino Server/Client wo der Agent läuft neu.

2. Alternative: Im Programmverzeichnis von Notes Server und Domino Client gibt es dieses Verzeichnis jvm\lib\ext. Kopiere die jars da rein. Das ist aber vom Class-Loading ein bischen schlechter, weil untergeordneter (mit dem Class-Loading verstehe ich auch nicht so ganz 100%).

Ich nehme für die nächsten 30 Minuten 1 zu 6 Wetten an, dass das genau deshalb nicht funktionieren wird, weil Domino eben keinen JAXP kompatiblen XML-Parser hat. Aber das müssen wir dann morgen besprechen.

Saludos

Axel
« Letzte Änderung: 17.05.04 - 17:55:06 von El Indio Mapuche »

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re:Externes Package in einem Java-Agent
« Antwort #2 am: 17.05.04 - 21:19:05 »
Hallo,

vielen Dank für die Hilfe. Java und Java in Notes sind anscheinend zwei verschiedene Ding. Die Notes-Hilfe habe ich natürlich schon intensiv genutzt - das Problem ist halt, nach was muss man suchen? JavaUserClasses wenn man nach package sucht, da muss man erst einmal drauf kommen...

Es genügte bereits, die beiden jar-Files in das jvm/lib/ext-Verzeichnis zu kopieren, dann klappte es bereits.

Die ersten Zeilen mit "package", "import" sind so vom Klassenhersteller angegeben, deshalb habe ich das direkt so übernommen.

Lesen tu' ich übrigens sehr viel.  Das Problem ist nur, dass es zu Java unter Notes nur sehr wenig gibt.  Das "Handbuch der Java-Programmierung" (javabuch.de) habe ich übrigens auch, aber da steht leider auch nichts über Notes drin.

Also, noch mal vielen Dank,

Joachim
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Hernan Cortez

  • Gast
Re:Externes Package in einem Java-Agent
« Antwort #3 am: 17.05.04 - 21:27:21 »
Lesen tu' ich übrigens sehr viel.  Das Problem ist nur, dass es zu Java unter Notes nur sehr wenig gibt.  Das "Handbuch der Java-Programmierung" (javabuch.de) habe ich übrigens auch, aber da steht leider auch nichts über Notes drin.

Is ok. Bei meinen Antworten darf man einfach nicht zu sensibel sein.  :)
Ich bin nicht der einzige Zyniker in dieser Branche.
In einem 1000 Seiten Buch können eben keine Spezial-Themen wie Legacy-Integration behandelt werden.

Gruß Axel
« Letzte Änderung: 17.05.04 - 21:42:47 von El Indio Mapuche »

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re:Externes Package in einem Java-Agent
« Antwort #4 am: 18.05.04 - 09:00:54 »
Zitat
Is ok. Bei meinen Antworten darf man einfach nicht zu sensibel sein.
Ich bin nicht der einzige Zyniker in dieser Branche.

Keine Angst, in dieser Hinsicht bin ich absolut nicht sensibel. Im Gegenteil, ich freu mich, wenn mir jemand helfen will und vor allem kann  :)

Du hast recht, anscheinend sind 1000 Seiten oftmals nicht genug. Aber im Ernst: Kennst Du ein gutes Buch, dass sich mit Notes-Java befasst. Reine Java-Bücher gibt es zu hunderten, aber Java in Notes scheint echt eine Seltenheit zu sein. Im Allgemeinen sind mir Bücher lieber als elektronische Nachschlagewerke. Mit einer Stichwortsuche unter Goolge findet man 2000 Treffer, von denen der 127.  dann der gesuchte ist. Aber oftmals geht es nicht anders - Das ist halt das Informationszeitalter :'(

Was ich kenne zum Them "Java unter Notes" ist:
- Schulungsunterlagen von Herdt
- Java-Anwendungen für Notes/Domino

Notes mache ich jetzt seit fast 10 Jahren; Java habe ich auch schon einiges gemacht; Aber Java in Notes ist für mich halt noch relativ neu.

Gruß und nochmals Danke,

Joachim
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Hernan Cortez

  • Gast
Re:Externes Package in einem Java-Agent
« Antwort #5 am: 18.05.04 - 16:22:39 »
Mit einer Stichwortsuche unter Goolge findet man 2000 Treffer, von denen der 127.  dann der gesuchte ist. Aber oftmals geht es nicht anders - Das ist halt das Informationszeitalter :'(
Versuche "Bob Balaban Java". Das ist dann schon besser.
oder : artikel 1 von 2

Was definierst du unter „Java Anwendung für Notes“. Das kann so vieles sein.
Es kann eine J2ME Handy Anwendung sein, die auf Notes Daten zugreift.
Oder eine Desktop Anwendung, die das gleiche tut.
Ein Applet innerhalb einer nsf.
Ein Notes-Agent.
Eine Servlet/JSP Anwendung, die Notes-Taglibs verwendet.
Eine Servlet/JSP Anwendung die sonstwie auf Notes zugreift.  
Ein Portlet, das auf Notes-Daten zugreift.
Eine Java Mail Api Klasse, die Notes als Mail-System verwendet.
Eine EJB Bean Managed Entity Bean, die Notes als Datasource verwendet.
Ein Webservice, der Notes-Daten bereitstellt.
Ein Eclipse plugin, zur Unterstützung der Erstellung von Notes Klassen.
Ein Eclipse plugin, dass Notes Anwendung in J2EE-Anwendungen konvertiert.

Etc. pp.

Auf Java basierende Systeme können Notes-Systeme ergänzen, verdrängen oder ersetzen.

Man müßte sich dann auch darauf einigen, was Basics für Notes/Java Integration ist:

Corba oder RPC-Wrapper Zugriff?
Zugriffsschicht aus lauter prozeduralen Methoden oder mehr objektartig?
Stop.
Diese Fragen der maipuistischen Konfusion schüren Aggression.

Gruß Axel

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re:Externes Package in einem Java-Agent
« Antwort #6 am: 19.05.04 - 09:07:33 »
Wow, da hab' ich wohl genau den richtigen erwischt.

Aber für mich ist das viel zu viel. Ich entwickle in erster Linie Notes-Datenbanken und keine Stand-Alone-Lösungen. Bisher bin ich mit Java unter Notes nur am Rande in Berührung gekommen, und zwar immer dann, wenn es um Datenex- oder import geht und hierfür bereits Java-Klassen existieren. Mit Eclipse oder einer J2ME Handy Anwendung werde ich vorerst sicher nicht zu tun haben. Bisher habe ich lieber auf API-Programmierung zurückgegriffen als das Ganze unter Java zu entwickeln. Vielleicht muss ich mich da aber in Zukunft ein bisschen anders orientieren.

Also, ich werde mich jetzt einmal etwas intensiver mit diesem Thema beschäftigen.

Gruß,

Joachim
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Hernan Cortez

  • Gast
Re:Externes Package in einem Java-Agent
« Antwort #7 am: 19.05.04 - 09:45:27 »
Disclaimer: Dinge aufzählen zu können, heisst nicht, dass man sie alle projekttauglich aus dem ff beherrscht. Auf der anderen Seite höhlt steter Tropfen den Stein.

Bisher habe ich lieber auf API-Programmierung zurückgegriffen als das Ganze unter Java zu entwickeln.
Habe ich Respekt vor. Und ich spiele mit dem Gedanken, mein verschüttetes C/C++-Wissen wieder ein bischen aufzumotzen.  
Vielleicht muss ich mich da aber in Zukunft ein bisschen anders orientieren.
Irgendwie ist das alles eine permanente Umorientierung.

Also, ich werde mich jetzt einmal etwas intensiver mit diesem Thema beschäftigen.

Meine derzeitige Empfehlung ist:
step 1: Umsonst-Anmeldung bei: http://www.javalobby.org/ (gratis, nicht aufdringlich, seriös).
step 2: Herunterladen von Eclipse Live von Bill Dudney. Gibts umsonst und ist ein sehr gutes Buch über eine sehr gute IDE.
« Letzte Änderung: 19.05.04 - 09:50:32 von El Indio Mapuche »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz