Реєстрація MBean за допомогою сервера JBoss MBean - Неможливо знайти JBoss MBean-сервер

Я використовую Spring для виявлення MBean і зареєструю його на сервері JBoss MBean. Це добре працює, коли війна випала в екземпляр JBoss. Однак це не спрацьовує при запуску одиничних тестів (що має сенс, оскільки не працює екземпляр JBoss). Ось витяг із пружинної конфігурації





    


     

Я шукаю, це елегантний спосіб вирішення цієї проблеми (не хочуть мати дві навесні конфігурації (для тестування та для розгортання) та відключення тесту перевірки перевірки весни не є варіантом.

Дякую!

0

2 Відповіді

Я використовую @Bean для вирішення цієї проблеми. @Bean розроблений спеціально для того, щоб створювати середовище.

Нижченаведена логіка в основному, у розробці (Tomcat) і тестуванні (JUnit), використовується MBeanServerFactoryBean. В іншому випадку використовуйте JBoss MBean Server.

  @Bean
  def mbeanServer: MBeanServer = {
    val server = if (environment == "development" || environment == "test") {
      val factory = new MBeanServerFactoryBean
      factory.setLocateExistingServerIfPossible(true)
      factory.setRegisterWithFactory(true)
      factory.afterPropertiesSet()
      log.info("using default MBeanServer")
      factory.getObject
    } else {
      val clazz = Class.forName("org.jboss.mx.util.MBeanServerLocator")
      val locateJboss = clazz.getMethod("locateJBoss", List.empty[Class[_]].toArray: _*)
      log.info("using JBoss MBeanServer")
      locateJboss.invoke(null, 
           List.empty[java.lang.Object].toArray: _*).asInstanceOf[MBeanServer]
    }
    log.info("mbeanServer: " + server)
    server
  }

На весні 3.1 ви можете вирішити цю проблему і використовувати конфігурацію xml за допомогою профілів. Але вище працює з Spring 3.0.

0
додано
Дякую! Ми використовуємо Spring 3.1, тому я вирішив проблему з профілями.
додано Автор Quantum_Entanglement, джерело

Це одна з ситуацій, коли вам, ймовірно, доведеться мати дві конфігурації, одну для тестування та одну для розгортання.

Саме тут Maven добре, оскільки ви маєте чітке розмежування між вашими конфігураціями розгортання та тестовими конфігураціями. Якщо ви турбуєтесь про те, як зберегти два конфігурації, то вам потрібно структурувати свої конфігурації таким чином, щоб всі загальні біти імпортувалися в інші конфігурації (це ми робили це).

0
додано
ІТ КПІ - Java
ІТ КПІ - Java
436 учасників