Autor Thema: Fehlermeldung bei NotesFactory.createsession  (Gelesen 4906 mal)

Offline D. Roth.

  • Aktives Mitglied
  • ***
  • Beiträge: 111
  • Ich liebe dieses Forum!
Fehlermeldung bei NotesFactory.createsession
« am: 12.10.04 - 15:35:27 »
HAllo  susammen ich bekomm immer eine Fehlermeldung wenn ich mit eine Java Programm
auf den Notes Server zugreifen will. Password , Server und Name stimmen.

Hat jemand eine Idee ??

ses = NotesFactory.createSession("Server", "USER", "Password"); //Erzeugen eines Sessionobjekts

java.net.ConnectException: Connection refused: connect
   at java.net.PlainSocketImpl.socketConnect(Native Method)
   at java.net.PlainSocketImpl.doConnect(Unknown Source)
   at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
   at java.net.PlainSocketImpl.connect(Unknown Source)
   at java.net.Socket.connect(Unknown Source)
   at java.net.Socket.connect(Unknown Source)
   at sun.net.NetworkClient.doConnect(Unknown Source)
   at sun.net.www.http.HttpClient.openServer(Unknown Source)
   at sun.net.www.http.HttpClient.openServer(Unknown Source)
   at sun.net.www.http.HttpClient.<init>(Unknown Source)
   at sun.net.www.http.HttpClient.<init>(Unknown Source)
   at sun.net.www.http.HttpClient.New(Unknown Source)
   at sun.net.www.http.HttpClient.New(Unknown Source)
   at sun.net.www.http.HttpClient.New(Unknown Source)
   at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
   at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
   at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
   at java.net.URL.openStream(Unknown Source)
   at lotus.domino.NotesFactory.getIOR(NotesFactory.java:314)
   at lotus.domino.NotesFactory.createSession(NotesFactory.java:66)
   at main.nagios2notes.main(nagios2notes.java:29)

Marinero Atlántico

  • Gast
Re: Fehlermeldung bei NotesFactory.createsession
« Antwort #1 am: 12.10.04 - 15:46:11 »
versuchs erstmal hiermit:
http://www.google.de/search?hl=de&q=+at+lotus.domino.NotesFactory.getIOR%28NotesFactory.java%3A314%29&btnG=Google-Suche&meta=

Stacktrace Errors eignen sich hervorragend zum googlen.
Die Kunst besteht darin, die richtige Zeile aus dem Stacktrace zu ziehen.  ;D
Ist aber auch keine Zauberei.
Eine Zeile die möglichst typisch für das Problem aber nicht zu applikationsspezifisch ist.
Code
  at main.nagios2notes.main(nagios2notes.java:29)
wäre zu Applikationsspezifisch, wobei man Klassennamen eigentlich groß schreibt.
Code
java.net.ConnectException: Connection refused: connect
ist zu allgemein (zu viele Treffer).

Das generische Problem ist der Zugriff über die Notes Corba Implementierung.
Deshalb habe ich diese Zeile im stacktrace gewählt (s. google link oben)

Gruß Axel
« Letzte Änderung: 12.10.04 - 15:51:25 von Marinero Atlántico »

Offline D. Roth.

  • Aktives Mitglied
  • ***
  • Beiträge: 111
  • Ich liebe dieses Forum!
Re: Fehlermeldung bei NotesFactory.createsession
« Antwort #2 am: 12.10.04 - 16:07:10 »
Merci , dass hat mir weiter geholfen,

Aber es tritt aber immer noch eine Fehler auf .
Und dieser ist noch seltsamer


public static void main(String[] args) {
   
    NotesThread.sinitThread(); //Beim lokalen Zugriff nicht DIIOP muss der Thread erst für Domino initialisiert werden.
   Session ses=null; //Sessionvariable definieren.
   
   try { //Da Notes Klassen Exceptions werfen können sollte man diese auch abfangen.
      //System.out.println(NotesFactory.getIOR("SERVER"));
      ses = NotesFactory.createSession("SERVER", "USER", "PASSWORD"); //Erzeugen eines Sessionobjekts

   //   ses = NotesFactory.createSession(); //Erzeugen eines Sessionobjekts
   //Database db=ses.getDatabase("GDEPFL03","names.nsf"); // Öffnen einer Datenbank bitte das anpassen an euer Umfeld z. B. Maildatenbank.
   //System.out.println("Datenbank hat folgenden Dateiname:"+db.getSize());
   

   }
   catch (Exception e){
   System.out.println("Es ist ein Fehler aufgetreten");
   e.printStackTrace();
   }
   finally{
   try{
   ses.recycle(); // Ganz wichtig, wenn dieser Befehl nicht ausgeführt wird, wird der Speicher den die Notesklassen im Hintergrund verwendet haben nicht mehr freigeben.
   }

lotus.domino.NotesException
   at lotus.domino.NotesExceptionHelper.read(NotesExceptionHelper.java)
   at lotus.domino.NotesExceptionHolder._read(NotesExceptionHolder.java)
   at com.ibm.CORBA.iiop.RepImpl.invoke(RepImpl.java:325)
   at com.ibm.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:36)
   at lotus.domino.corba._IObjectServerStub.createSession(_IObjectServerStub.java)
   at lotus.domino.cso.Session.OREFtoSession(Session.java:829)
   at lotus.domino.cso.Session.<init>(Session.java:72)
   at lotus.domino.cso.Session.createSession(Session.java:40)
   at lotus.domino.NotesFactory.createSession(NotesFactory.java:67)
   at main.nagios2notes.main(nagios2notes.java:30)

Marinero Atlántico

  • Gast

Offline D. Roth.

  • Aktives Mitglied
  • ***
  • Beiträge: 111
  • Ich liebe dieses Forum!
Re: Fehlermeldung bei NotesFactory.createsession
« Antwort #4 am: 13.10.04 - 14:00:17 »
Hi danke für den Link ,

aber ich werd wahnsinnig , es funktioniert immer nocht nicht hab den Notes Server  jetzt auch schon neu gestartet.

 :'(

Hast du sonst noch ein Tipp ??

Marinero Atlántico

  • Gast
Re: Fehlermeldung bei NotesFactory.createsession
« Antwort #5 am: 13.10.04 - 16:24:19 »
Sind vielleicht die jars, die du in deinem Java Client verwendest von einer anderen Version.
D.h. du solltest die von genau dem Server nehmen auf den du zugreifst.

Wenn auf der Box, auf der dein Java Programm läuft, ein Notes Client vorhanden ist, musst du auch nicht über Corba gehen. So habe ich das eigentlich immer präferiert.

Im Prinzip bekommt man das aber ans laufen.

Zeile 30 der Klasse "nagios2notes" ist die hier,
Code
ses = NotesFactory.createSession("SERVER", "USER", "PASSWORD"); //Erzeugen eines Sessionobjekts
oder?

Zumindest scheinen die CORBA Fehlermeldungen darauf hinzudeuten.
Zitat
at lotus.domino.corba._IObjectServerStub.createSession(_IObjectServerStub.java)
Hast du da wirklich als Parameter "SERVER", "USER", "PASSWORD" angegeben?
Oder hast du das hier nur nachträglich so editiert?
Da muss natürlich ein richtiger Servername, ein richtiger Username und ein richtiges Password hin.

Sowas kann einen definitiv in den Wahnsinn treiben, v.a. weil es kein offener Source code ist.

Gruß Axel
Gruß Axel

Offline D. Roth.

  • Aktives Mitglied
  • ***
  • Beiträge: 111
  • Ich liebe dieses Forum!
Re: Fehlermeldung bei NotesFactory.createsession
« Antwort #6 am: 13.10.04 - 16:43:58 »
Hi ,
ich hab im die Zeile editiert ich wollte kein Password und Servernamen ins Forum stellen.

Hab mir gerade die jars vom server gezogen , aber es kamm der gleiche Fehler. Kann es an der Java Rutime Version (1.4.2.05) liegen ???

Hier der ganze SourceCode :

/*
 * Created on 13.10.2004
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package main;
import lotus.domino.*;
/**
 * @author rotd
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class notes2nagios  implements Runnable  {
   public static void main(java.lang.String[] args) {
      notes2nagios t = new notes2nagios();
      Thread nt = new Thread((Runnable)t);
      nt.start(); }
   
      public void run() {
         System.out.println("Running"); //This prints out
      try {
         System.out.println("trying"); //This prints out
         System.out.println("Session s"); //This prints out
         //Program does not get past the next line
         Session s = NotesFactory.createSession("SERVER","USER","PASSWORD");
         System.out.println("Done Session s"); // This line does not print out      
         Database db=s.getDatabase("SERVER","names.nsf");
         System.out.println("Datenbank hat folgenden Dateiname:"+db.getSize());
         s.recycle();
      } catch (Exception e) {
      e.printStackTrace(); } }
}

Marinero Atlántico

  • Gast
Re: Fehlermeldung bei NotesFactory.createsession
« Antwort #7 am: 13.10.04 - 17:04:03 »
Aus der Hilfe von NotesFactory (ich habs lange nicht mehr gemacht mit corba).
Hervorhebung von mir:

For applications making remote (IIOP) calls based on the host server's Domino Directory, create an Internet Session object as follows, where hostString is the host name or IP address of the Domino server (not the Domino server name). The specification of a host name or IP address determines the use of the remote interface. A host name can be suffixed with the port number that the HTTP or DIIOP task uses to listen for TCP (non-SSL) connections using the syntax hostname:port (hostname-colon-port).
Hinweis  The ability to specify a port number is new with Release 6.
createSession(hostString, "", "") -- Anonymous Internet access is granted to the session if the host's Server record in the host's Domino Directory permits anonymous access. Parameter two must be an empty string, not null.
createSession(hostString, userString, passwordString) -- Internet access is granted to the session if the password matches the Internet password in the user's Person record in the host's Domino Directory.

Hoffe es hilft.

Marinero Atlántico

  • Gast
Re: Fehlermeldung bei NotesFactory.createsession
« Antwort #8 am: 14.10.04 - 12:38:34 »
Ich vermute du hast den NotesServernamen und nicht die IP Adresse genommen oder nicht das http-Kennwort?
Oder ist vielleicht eine Firewall zwischen deiner client box und dem Server?
Die Fehlermeldung ist natürlich nicht besonders aussagekräftig.

Offline D. Roth.

  • Aktives Mitglied
  • ***
  • Beiträge: 111
  • Ich liebe dieses Forum!
Re: Fehlermeldung bei NotesFactory.createsession
« Antwort #9 am: 15.10.04 - 17:09:20 »
Danke ich hat keine Internet Passwort gesetzt !!!  ::)

Marinero Atlántico

  • Gast
Re: Fehlermeldung bei NotesFactory.createsession
« Antwort #10 am: 15.10.04 - 19:11:06 »
  ::)

Notes hat dir auch keine vernünftige Fehlermeldung herausgegeben.
Gute Fehlermeldungen sind wirklich eine Menge Wert und es ist imho weder Lotus noch IBMs Stärke.

Anderes Beispiel
Ich hatte z.B. nie den Kult verstanden, den manche Leute um den WebContainer Resin statt Tomcat machten.
Bis ich begriffen habe, dass aus diesem Server viel bessere Fehlermeldungen kamen als aus Tomcat4. Das war den Leuten, die Resin für die Entwicklung nutzten, sehr wertvoll.
Tomcat5 hat aber in dieser Hinsicht deutlich aufgeholt.

Gruß Axel

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz