Frage

Ich möchte eine Web-Anwendung wie die Dinge über seine Umgebung zu lernen, so dass es verschiedene Details beschreiben kann, wenn eine Ausnahme auftritt.

Wie würde ich die IP-Adresse (n), dass Glasfischen laufen auf innerhalb der Web-Anwendung?

Ich möchte auch eine Momentaufnahme der Konfiguration, JDBC-Verbindungen, JMS, JNDI nehmen, usw. Ist das möglich?

Ich denke, das an die API von Glasfischen mehr aufeinander bezogene wäre und eine Bohne oder mbean injiziert wird.

Walter

War es hilfreich?

Lösung 3

ich wie folgt vor:

  1. finden Sie alle Netzwerkschnittstellen an der Maschine
  2. Datensatz JVM Informationen

Das gibt mir genügend Informationen, um zu bestimmen, wo ein Problem kam.

Walter

Andere Tipps

  

Wie würde ich die IP-Adresse bekommen (es)   dass Glasfischen läuft auf innerhalb   die Web-Anwendung?

Sie können diese Informationen in ServletRequest erhalten, z.B. die Port .

  

Ich möchte auch einen Snapshot   der Konfiguration, JDBC   Verbindungen, JMS, JNDI, usw. Ist das   möglich?

Sie müssen auf den Metadaten der Verbindung oder die Verbindung Fabrik verlassen. Wenn die Angst nicht tragbar ist, aber Sie sollten in der Lage sein, einige Informationen zu erhalten, zum Beispiel die JDBC Metadaten .

Sie können auch die JMX Bohnen von Glassfish verbinden. Ich habe das einmal von einem Web-App die Verbindung zu überwachen, das im Laufe der Zeit zugeteilt. Wenn Sie den Namen der JMX Bohnen kennen zu sehen (zum Beispiel, wenn Sie den Namen der Datenquelle kennen) können Sie einen Wagen auf Informationen dort ankommen. Im Grunde alles, was die native Glassfish Konsolenanzeige ist.

Sie könnten vielleicht alle Informationen beim Start-up sammeln, um eine ServletContextListener withing und sie dann irgendwo speichern sie im Falle einer Ausnahme auszuspucken.

Beachten Sie, dass Sie mögliche sensible Informationen zu den Endnutzer offen legen kann, was nicht empfohlen ist.

  

Wie würde ich die IP-Adresse (n), dass Glasfischen laufen auf innerhalb der Web-Anwendung?

Verwenden Sie ServletRequest#getLocalPort() für das (nicht ServletRequest#getServerPort() die tatsächlich zurückgibt die Port-Nummer gesendet, an die die Anfrage , am häufigsten 80 und könnte zu Routing / Load Balancing) der Behälter hört vom Hafen unterschiedlich sein zurückzuführen.

  

Ich möchte auch eine Momentaufnahme der Konfiguration, JDBC-Verbindungen, JMS, JNDI nehmen, usw. Ist das möglich?

Nun, können Sie vielleicht den JNDI-Baum sehen, um zu sehen, was da drin ist, aber Ihre Anwendung soll nicht bewusst alle Details sein (verstehen: Ich glaube nicht, Sie in der Lage sein werden alle Metadaten zugreifen, auf dest nicht auf diese Weise).

Eine weitere Möglichkeit zu verbinden wäre Glassfish ist ausgesetzt Verwaltungs MBeans über JMX . Aber das wird die Admin-Anmeldeinformationen erforderlich ist (und könnte somit nicht möglich sein).

Vielleicht sollten Sie Ihre Bedürfnisse und Zwänge klären präzisere Antworten zu erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top