Glassfish - описание среды, в которой работает веб-приложение - PullRequest
0 голосов
/ 05 февраля 2010

Мне бы хотелось, чтобы веб-приложение узнало что-то о своей среде, чтобы оно могло описывать различные детали при возникновении исключения.

Как узнать IP-адрес (а), на котором работает glassfish в веб-приложении?

Я также хотел бы сделать снимок конфигурации, соединений JDBC, JMS, JNDI и т. Д. Возможно ли это?

Полагаю, это было бы в большей степени связано с API стеклянной рыбы и инъекцией бобов или манго.

Walter

Ответы [ 3 ]

0 голосов
/ 06 февраля 2010

Как узнать IP-адрес (а), на котором работает glassfish в веб-приложении?

Используйте ServletRequest#getLocalPort() для этого (не ServletRequest#getServerPort(), который фактически возвращает номер порта, на который был отправлен запрос , чаще всего 80 и может отличаться от порта, который слушает контейнер из-за маршрутизации / распределения нагрузки).

Я также хотел бы сделать снимок конфигурации, соединений JDBC, JMS, JNDI и т. Д. Возможно ли это?

Что ж, возможно, вы можете просмотреть дерево JNDI, чтобы увидеть, что там, но ваше приложение не должно знать обо всех деталях (понимаю: я не думаю, что вы сможете получить доступ ко всем метаданным, в хотя бы не так).

Другой вариант - подключиться к открытым административным MBeans GlassFish через JMX . Но это потребует учетных данных администратора (и, следовательно, может оказаться невозможным).

Возможно, вам следует уточнить свои потребности и ограничения, чтобы получить более точные ответы.

0 голосов
/ 31 марта 2010

Я делаю следующее:

  1. найти все сетевые интерфейсы на машине
  2. запись информации JVM

Это дает мне достаточно информации, чтобы определить, откуда возникла проблема.

Walter

0 голосов
/ 05 февраля 2010

Как бы я получил IP-адрес (а) что стеклянная рыба бежит внутри веб-приложение?

Вы можете получить такую ​​информацию в ServletRequest, например, порт .

Я бы тоже хотел сделать снимок конфигурации, JDBC соединения, JMS, JNDI и т. д. Является ли это возможно

Вам нужно будет полагаться на метаданные соединения или фабрики соединений. Если вы боитесь, это не совсем переносимо, но вы должны быть в состоянии получить некоторую информацию, например, метаданные JDBC .

Вы также можете подключить JMX-бины Glassfish. Я сделал это однажды из веб-приложения, чтобы контролировать соединение, которое было выделено с течением времени. Если вы знаете имя бобов JMX для поиска (например, если вы знаете имя источника данных), вы можете получить информацию об этом. В основном все, что есть на родном дисплее консоли Glassfish.

Вы можете собрать всю информацию при запуске с ServletContextListener и затем сохранить ее где-нибудь, чтобы выплюнуть в случае исключения.

Обратите внимание, что вы можете раскрыть потенциальную конфиденциальную информацию конечному пользователю, что не рекомендуется.

...