AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Webservice Einstellungswerte übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

Webservice Einstellungswerte übergeben

Ein Thema von etom291272 · begonnen am 6. Dez 2005 · letzter Beitrag vom 9. Dez 2005
Antwort Antwort
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#1

Webservice Einstellungswerte übergeben

  Alt 6. Dez 2005, 11:21
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:
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
diese funktion liefert mir ein variable mit der schnittstelle über die ich dann meine operationen abwickle.
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
  Mit Zitat antworten Zitat
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#2

Re: Webservice Einstellungswerte übergeben

  Alt 7. Dez 2005, 10:16

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
function GetoefkPortType(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): oefkPortType; einfach um einen record erweitern der dann die daten für die kommunikation mit dem webservice enthält


sorry nicht ganz 24h
  Mit Zitat antworten Zitat
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#3

Re: Webservice Einstellungswerte übergeben

  Alt 8. Dez 2005, 11:45
habs jetzt folgendermassen gelöst.
Delphi-Quellcode:
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;
Können mit dieser Lösung Probleme auftauchen
  Mit Zitat antworten Zitat
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#4

Re: Webservice Einstellungswerte übergeben

  Alt 9. Dez 2005, 10:55
einmal versuchs ich noch
  Mit Zitat antworten Zitat
Highway

Registriert seit: 4. Apr 2004
Ort: Elsdorf
10 Beiträge
 
Delphi 2005 Architect
 
#5

Re: Webservice Einstellungswerte übergeben

  Alt 9. Dez 2005, 11:52
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:
[url]http://localhost/ServiceName?wsdl[/url]
[url]http://127.0.0.1/ServiceName?wsdl[/url]
[url]http://ServerUrl/ServiceName?wsdl[/url]
erreichen.

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:
Service := GetoefkPortType(false,'http://localhost/Webservice?wsdl');
Service := GetoefkPortType(false,'http://127.0.0.1/Webservice?wsdl');
Service := GetoefkPortType(false,'http://ServerUrl/Webservice?wsdl');
Hoffe es hilft weiter.

Grüße,

Highway
  Mit Zitat antworten Zitat
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#6

Re: Webservice Einstellungswerte übergeben

  Alt 9. Dez 2005, 13:27
erstmal danke für deinen post.

Zitat:
Hallo,
der Fehler besteht darin, das du den Webservice über das Filesystem ansprichst.
warum spreche ich den webservice über filesystem an der parameter uses wsdl ist doch auf false somit ist die wsdl datei nur relevant beim ersten erstellen der unit (oefk.pas die den gesamten webservice implementiert) danach ist die wsdl eigentlich gar nicht mehr involviert.
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
  Mit Zitat antworten Zitat
Highway

Registriert seit: 4. Apr 2004
Ort: Elsdorf
10 Beiträge
 
Delphi 2005 Architect
 
#7

Re: Webservice Einstellungswerte übergeben

  Alt 9. Dez 2005, 20:22
Hast vollkommen recht!

Ich habe mich durch den Verweis auf Laufwerk Z irritieren lassen.

Grüße,

Highway
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz