Autor Beitrag
Marlem
Hält's aus hier
Beiträge: 6


D5 Prof.
BeitragVerfasst: Di 14.12.04 13:45 
Tach,

ich habe ne Java-Anwendung von der ich keinen Quellcode habe und ne Delphi-Anwendung von der ich Quellcode habe.
Diese beiden Anwendungen sollen Daten austauschen!
Die Java-Anwendung schickt im xml-format über http Daten an die Delphi-Anwendung(ich benutze Indy-Komponenten). Die Daten kommen bei der Delphi-Anwendung an.(Beide Anwendungen sind auf dem selben Rechner)
Nachdem ich nun mit diesen Daten in xml-format ne Datenbankabfrage gemacht habe,
soll das Ergebnis der Datenbank-Abfrage in XML gepackt werden und von der Delphi-Anwendung an die Java-Anwendung zurückgeschickt werden!
und das zurückschicken ist mein Problem!
Weiß jemand wie das geht bzw. worauf man achten muss?
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Di 14.12.04 13:53 
Also du hast im Delphi Prog praktisch nen HTTP-Server dem das Java-prog die xml-Datei schickt? Dann kannst du maximal das java prog so lange auf eine result seite auf dem http server pollen lassen, bis das Delphi-Prog da die resultate reingeschrieben hat, davor gibts die resultat seite halt nicht.


MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
Marlem Threadstarter
Hält's aus hier
Beiträge: 6


D5 Prof.
BeitragVerfasst: Di 14.12.04 14:28 
Tach MrSaint,

danke für die Antwort!
ja, im Delphi-Programm ist ne Httpserver-Komponente von Indy!
was bedeutet "pollen lassen"?
wo soll ich das Ergebnis reinschreiben?

Gruß


Markus
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Di 14.12.04 14:33 
Das Problem ist, dass Du wissen musst, wie das Java-Programm arbeitet. Wartet es auf die korrekten Ergebnisse oder verarbeitet es jegliche Art von Rückgaben?
Da das Prorgamm aber wahrscheinlich keinen eigenen HTTP-Server hat, musst Du auf die Anfrage des Java-Programmes reagieren und auf diese die Ergebnisse zurückliefern.
MrSaint meinte wohl, dass Du erst eine Weiterleitungsseite zurückgibst, die die URL wieder und wieder aufruft. Sobald Du im Hintergrund das Ergebnis zusammen hast, schickst Du dem Client (Java-Programm) diese zurück. Alternativ kannst Du ihn auch einfach warten lassen, wobei es darauf ankommt, wie schnell Du die Daten zusammen hast, damit nicht ein Timeout ausgelöst wird.

Du kannst aber dem Client nicht irgendwann was zurückschicken, denn das HTTP-Protokoll ist zustandslos, ist eine Übertragung (einmal hin und einmal zurück) beendet, dann ist das erledigt, der Server kann dem Client nichts ohne Anfrage schicken.
Marlem Threadstarter
Hält's aus hier
Beiträge: 6


D5 Prof.
BeitragVerfasst: Di 14.12.04 14:56 
Hallo Uwe,

danke für die tollen Hintegrundinformationen!
also das Java-Programm wartet anscheinend auf das Ergebnis,
aber mein konkretes Problem ist, wo "stelle" ich die Ergebnisse hin,
damit das Java-Programm Sie "abholt"!
Kannst Du mir da bitte einen Tipp geben?

_________________
Gruß
Markus
endeffects
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41



BeitragVerfasst: Di 21.12.04 11:07 
mit ein bißchen glück kannst du die java anwendung ohne
weiteres decompilieren, dazu gibts diverse online decompiler,
wenn du alles richtig machst hast du den kompletten source code
von der anwendung
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Di 21.12.04 15:23 
Den Thread hatte ich total vergessen :oops:
also generell werden bei HTTP Daten über die Get-Methode angefragt, d.h. Du müsstest (glaube ich) in Deiner Delphi-App auf das Ereignis OnCommandGet der IdHTTP-Kompo reagieren. Aber dazu kann ich Dir nicht mehr sagen, weil ich mich damit nie beschäftigt habe. Vielleicht gibts da noch jemand kompetenteres ;-)

//EDIT: AResponseInfo.ResponseText dürfte das sein, was Du suchst