Delphi -> JNI -> SOAP

Status
Nicht offen für weitere Antworten.
D

Daniel T.

Gast
Hallo,

bin neu hier und habe folgende Problemstellung:

Ein Delphi-Client greift über JNI auf ein Java-Client (also über Java wrapper für SOAP-Kommunikation) der seinerseites über SOAP mit einem Server kommuniziert.
Sollte die Kommunikation mit dem Server aber länger als angegeben dauert (z.B. 2 sek) so soll ein Fenster erscheinen, in dem die Kommunikation mittles einem Abbrechen-Buttons abgebrochen werden kann.

Hat jemand ein Vorschalg für mich?

Danke
Daniel T.
 
D

Daniel T.

Gast
Hallo,

ich bins noch mal und wollte noch folgendes klarstellen:
Die Kommunikation Delphi -> JNI funktioniert sehr gut. Es geht hier um dieses "Abbrechen" von zu lange dauernde Abfragen an den Server (ich denke hier an Timer und Threads). Es soll hier die Möglichkeit geschafft werden diese Aufrüfe zu canceln.

Daniel T.
 

daniel.tarita

Neues Mitglied
Hallo,

um mein Problem klarer darzustellen:

Ist-Situation:
Code:
	public void login(String aOrgname, String aUsername, String aPassword,
			String aLanguage) throws Exception {
		orgname = aOrgname;
		username = aUsername;
		password = aPassword;
		language = aLanguage;

		try {
			connect();
		} catch (RegistryException e) {
			throw new Exception(e);
		}

		server.login(orgname, username, password, language);
	}

Soll-Situation:

Code:
	public void login(String aOrgname, String aUsername, String aPassword,
			String aLanguage) throws Exception {
		orgname = aOrgname;
		username = aUsername;
		password = aPassword;
		language = aLanguage;

		try {
			connect();
		} catch (RegistryException e) {
			throw new Exception(e);
		}

		//server.login(orgname, username, password, language);
		//Der Aufruf von server.login(orgname, username, password, language); soll in einem Thread geschehen. 
		//"server"-Thread.login(orgname, username, password, language);
		//Gleichzeitig soll ein "timer"-Thread gestartet werden
		//"timer"-Thread.start();
		//Wenn der "timer"-Thread 2 sek. gewartet hat und der "server"-Thread Aufruf nocht nicht fertig ist, 
		//dann soll ein Fenster erscheinen auf dem ein "Abbrechen"-Button plaziert ist. 
		//Wir der "Abbrechen"-Button gedrückt dann soll der aktuelle "server"-Thread-Aufruf beendet werden.
	}

Hat jemand dazu ein Implementierungsbeispiel oder eine Idee wie ich das Implementieren kann?
 

Grey_M

Aktives Mitglied
Ich verstehe dein Problem nicht ganz. eigentlich hast du die Lösung ja komplett beschrieben. Musst nur noch den Code dazu schreiben.

Kannst ja in der FAQ dieses Forums schauen. Da gibt einen Punkt namens "Multithreading". Der sollte dir bei der Umsetzung helfen.

- 1.Thread starten. Dieser führt den logging aus. Bei einem erfolgreichen anmelden, setzt er eine Variable "logged" auf true.

- 2.Thread wird direkt danach gestartet und mit Thread.sleep(2000) dazu gebracht, 2 sek. zu warten. Danach überprüft er die Variable "looged"

Wenn "logged" nicht true ist, dann erzeugt er ein neues Fenster mit dem Abbruch-Button. Bei dem drücken des Abbruch Buttons beendest du dann einfach den 1.Thread mit "1.Thread".stop (oder kill, oder so)


eine "finally" Methode im 1.Thread wäre dann noch gut, der die Verbindung beendet.

Alles klar soweit?
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben