![]() |
Webservice Einstellungswerte übergeben
:gruebel: Hallo zusammen
ich schreibe gerade eine dll, die über einen webservice bestimmte daten aus einer adressdatenbank von einem linuxserver abruft. Dieser Linuxserver ist von der dll aus nicht über internet sondern über lan erreichbar. die dll soll jetzt bei x kundschaften eingesetzt werden. beim wsdl import generiert delphi ja eine unit wo alles drin ist was man braucht. Mir geht es um volgende Funktion
Delphi-Quellcode:
diese funktion liefert mir ein variable mit der schnittstelle über die ich dann meine operationen abwickle.
function GetoefkPortType(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): oefkPortType;
{const defWSDL = 'Z:\!Desktop\WebserviceClient\Klass\doku\WSDL\oefk.wsdl'; defURL = 'http://www.sla.de/oefksoap'; defSvc = 'oefk'; defPrt = 'oefk';} var RIO: THTTPRIO; defWSDL, defURL, defSvc, defPrt:String; begin Result := nil; if (Addr = '') then begin if UseWSDL then Addr := defWSDL else Addr := defURL; end; if HTTPRIO = nil then RIO := THTTPRIO.Create(nil) else RIO := HTTPRIO; try Result := (RIO as oefkPortType); if UseWSDL then :?: wenn die unit von delphi erstellt wird sind sie Felder defWSDL, defURL, defSvc, defPrt alles Konstanten. Diese werden aber je kunde unterschiedlich sein darum müssen sie aus einer anderen software heraus in meine dll übergeben werden. :?: wie bekomme ich jetzt richtig die werte in diese funktion kann ich die deklaration der funktion GetoefkPortType einfach ändern und einen eigenen record übergeben oder sollte ich einen unit zirkelverweis (Hauptunit der dll verwendet ja die webservice unit und webservice unit verwendet dann hauptunit) herstellen. mir wäre es am liebsten wenn ich die funktion erweitern könnte. Danke für eure Antworten :coder: |
Re: Webservice Einstellungswerte übergeben
:!: :!: :!: :!: :!: :!: :!: :!: :!: :!: :!: :!: :!: :!:
sorry das ich schon wieder pushen muss aber die antwort ist wichtig für mich da ich diese dll diese woche ausliefern muss. Kann ich die Funktion
Delphi-Quellcode:
einfach um einen record erweitern der dann die daten für die kommunikation mit dem webservice enthält
function GetoefkPortType(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): oefkPortType;
:?: :wiejetzt: :oops: sorry nicht ganz 24h :mrgreen: |
Re: Webservice Einstellungswerte übergeben
:? habs jetzt folgendermassen gelöst.
Delphi-Quellcode:
Können mit dieser Lösung Probleme auftauchen :?: :?: :?:
type
TKommEinstWebs = record URL, Svc, Prt:String; end; ... with aKommEinst do begin URL:=parURL; Svc:=parSvc; Prt:=parPrt; end; oefk:=GetoefkPortType(aKommEinst, False); ... function GetoefkPortType(pKommEinst:TKommEinstWebs; UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): oefkPortType; {const defWSDL = 'Z:\!Desktop\WebserviceClient\Klass\doku\WSDL\oefk.wsdl'; defURL = 'http://www.sla.de/oefksoap'; defSvc = 'oefk'; defPrt = 'oefk';} var RIO: THTTPRIO; defWSDL, defURL, defSvc, defPrt:String; begin with pKommEinst do begin defURL:=URL; defSvc:=Svc; defPrt:=Prt; end; |
Re: Webservice Einstellungswerte übergeben
einmal versuchs ich noch :mrgreen: :mrgreen: :mrgreen:
|
Re: Webservice Einstellungswerte übergeben
Hallo,
der Fehler besteht darin, das du den Webservice über das Filesystem ansprichst. Dein Webservice auf der Linux-Maschine ist doch auch via http erreichbar. Beispiel: Du hast einen Apache-Server auf deiner lokalen Maschine aufgesetzt. Dann kannst du den Server über
Delphi-Quellcode:
erreichen.
[url]http://localhost/ServiceName?wsdl[/url]
[url]http://127.0.0.1/ServiceName?wsdl[/url] [url]http://ServerUrl/ServiceName?wsdl[/url] Wenn du die WSDL dann von dieser http Adresse importierst, die sollte ja für jeden User die gleiche sein, dann erreichst du den Service von allen Rechnern über die gleiche http-Adresse erreichbar sein. Alternativ kannst du diese http-Adresse auch als Parameter an die Procedure übergeben. Beispiel:
Delphi-Quellcode:
Hoffe es hilft weiter.
Service := GetoefkPortType(false,'http://localhost/Webservice?wsdl');
Service := GetoefkPortType(false,'http://127.0.0.1/Webservice?wsdl'); Service := GetoefkPortType(false,'http://ServerUrl/Webservice?wsdl'); Grüße, Highway |
Re: Webservice Einstellungswerte übergeben
:hi: erstmal danke für deinen post.
Zitat:
Der Zugriff auf den webservice erfolgte über 'http://www.sla.de/oefksoap' (und beim Kunden anschl. über die locale ip des Servers im Lan) also müsste er imho über web und nicht über filesystem gehen. Sollte ich mit dieser Annahme gröber im dunkeln tappen bitte um aufklärung |
Re: Webservice Einstellungswerte übergeben
Hast vollkommen recht!
Ich habe mich durch den Verweis auf Laufwerk Z irritieren lassen. Grüße, Highway |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz