Server Variablen unter C++ auslesen



  • Hi all,

    unter Java gibt es die Möglichkeit sogenannte Server Variablen auszulesen ( z.B. in der Art "Request.ServerVariables("LOGON_USER")"). Gibt es so eine Möglichkeit auch in C++?

    Hintergrund: Meine Clientanwendung ist in Java geschrieben, mein Server in C++ und ich möchte gerne auf der Serverseite ein Logbuch mit Daten wie Benutzer, IP-Adresse u.ä. führen.

    Für eine Antwort bedankt sich

    Guido



  • Atlas schrieb:

    Hi all,

    unter Java gibt es die Möglichkeit sogenannte Server Variablen auszulesen ...

    Da "Server" kein geschützter Begriff ist, kann sich das auf alles Mögliche beziehen .... und in C++ gibt's so einen Begriff gar nicht.
    Ich vermute mal, dass Du sowieso eine spezielle C++-API brauchst, um mit "dem Server" zu kommunizieren - da solltest Du mal drin nachsehen.

    Alternativ sind evtl. "Umgebungsvariablen" gemeint ... dann kann Dir getenv() vielleicht weiterhelfen.

    Gruß,

    Simon2.



  • ( z.B. in der Art "Request.ServerVariables("LOGON_USER")"). Gibt es so eine Möglichkeit auch in C++? (...) mein Server in C++

    Was für einen Server bzw. was für ein Framework verwendest du?



  • hallo simon2, hallo hustbear,

    sorry für meine späte antwort, habe ein bischen zuviel um die ohren.

    Ich muß meine Frage nochmal neu formulieren (möglicherweise bin ich dafür aber im falschen Forum): Von einem Browser aus wird ein Request an den Tomcat geschickt und dort von einem Servlet empfangen. In diesem Request sind u.a. Informationen wie IP-Adresse des Browsers, Benutzername etc. enthalten, die ich auslesen möchte. Die entsprechenden Methoden des Servlets (siehe mein erstes Posting) liefern aber nur Leerstrings. Es scheint, daß der Tomcat diese Infos nichtweiterreicht, d.h. daß irgendeine Einstellung beim Tomcat nicht stimmt. Nur welche?

    Falls das hier das falsche Forum ist, bitte sagt mir Bescheid/verschiebt das Posting in die richtige Gruppe.

    Danke im Voraus

    Guido



  • Wie bitte knotest du Tomcat mit C++ zusammen? Du meinst schon Apache Tomcat, den Java Servlet Server Dingsi, ja?



  • Hi,

    zur Erklärung, der Tomcat bzw. das Servlet stellt Eingabemasken und anderes zur Verfügung und sendet die hiermit empfangenen Werte an eine in C++ geschriebene Business-Logik (DLL). Tomcat ist der Servlet-Container (standalone) und kommuniziert mit der DLL über einen Apache-Server.

    Da ich eher in der C-Welt zu Hause bin, ist das der Grund für mein erstes Posting.

    Guido



  • Dann müsstest Du uns jetzt evtl. nur noch sagen WIE Du von Apache aus mit der C++-DLL kommunizierst. Und dort übergibst Du am besten die gewünschten Werte an die C++-DLL.



  • Hi,

    wie schon von hustbaer, Lord und mir formuliert, ist das kein Thema von "C++", sondern von der verwendeten API (von Tomcat ?).

    Da bleibt nur zu sagen: Du musst die geeignete Funktion aufrufen ... wenn die das nicht hergibt, kannst Du noch versuchen, das Framework zu patchen, was aber vermutlich mehr Arbeit und Probleme bereitet, als wenn Du Dir einen anderen technischen Weg für Dein fachliches Problem suchst.

    Gruß,

    Simon2.



  • Hi all,

    kurz ein paar Worte zu meinem System: Die Business-Logik ist in einer in C++ geschriebenen DLL verpackt, die ihrerseits vom Apache geladen und als 'Service' zur Verfügung gestellt wird. Angesprochen wird sie durch ein Servlet, welches vom Tomcat geladen wird. Tomcat und Apache kommunizieren via SOAP. Der Tomcat stellt die Schnittstelle nach außenhin dar, da er über einen Browser angesprochen werden kann, liefert die GUI, sammelt Eingaben und sendet diese an den Apache und somit an die DLL.

    Mein Problem liegt nicht in der Kommunikationskette sondern darin, daß eine von einem Browser gesendete Anforderung u.a. Daten enthält, die zeigen, wer denn da etwas vom Tomcat will. Und genau an diese Daten will gelangen.

    Ich hatte zuerst gedacht, dies sei ein C++ Problem, es ist aber augenscheinlich auf der Java/Tomcat-Seite zu suchen (wie ich jetzt mit Sicherheit weiß). Ich werde wohl in die Java-Ecke wechseln müssen.

    Danke

    Guido



  • Äh. Woher soll denn der Apache und die darin geladene C++ DLL irgendwelche Dinnge über einen Request kennen den ein ganz anderer Prozess, nämlich der Tomcat, entgegengenommen hat?
    Der Tomcat bekommt einen Request rein, und fragt dann per SOAP beim Apache nach. Ergo kann der Apache auch nur die Daten des SOAP Requests kennen, nicht aber die des ursprünglichen Requests.

    Aber ehrlich, wer baut denn sowas? Ich meine... das ginge doch sicher einfacher.



  • Sorry, Doppelpost, Forum spinnt.
    Schreibt irgendwas vonwegen

    Spinnertes Forum schrieb:

    Failed sending email :: PHP ::

    DEBUG MODE

    Line : 234
    File : emailer.php



  • hustbaer schrieb:

    Sorry, Doppelpost, Forum spinnt.
    Schreibt irgendwas vonwegen

    Spinnertes Forum schrieb:

    Failed sending email :: PHP ::

    DEBUG MODE

    Line : 234
    File : emailer.php

    Sorry OT, aber genau diesen Fehler hatte ich Heute Nachmittag auch 2 mal. Beim ersten mal musste ich auch editen.



  • Hi hustbaer,

    > Äh. Woher soll denn der Apache und die darin geladene C++ DLL irgendwelche Dinnge über einen Request kennen ...

    richtig, das war mein Denkfehler. Im Prinzip liegen drei getrennte Prozesse vor, nämlich der Browser auf Rechner A, der Tomcat auf Rechner B und der Apache nebst DLL auf Rechner C. Die Request-Infos bekommt natürlich nur der Tomcat geschickt, der muß sie dann weiter an den Apache leiten.

    Diese etwas seltsame Struktur ist historisch begründet, alleweil man ca 1000 C++ Klassen nicht gerne nach Java konvertieren möchte 😉

    Gruß Guido


Anmelden zum Antworten