Рэгістрацыя ў 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 добра, як і ў вас ёсць выразны падзел паміж вашай конфігах разгортвання і тэставай конфігах. Калі вы турбуецеся аб захаванні двух конфігаў да Todate, то вам неабходна структураваць конфігі такім чынам, што ўсе агульныя біты імпартуюцца ў іншыя конфігі (гэта значыць, як мы гэта рабілі).

0
дададзена