Приложение Tomcat 6 для виртуального хостинга Same Spring - PullRequest
2 голосов
/ 02 февраля 2010

Я хочу развернуть один и тот же файл .war на двух разных виртуальных хостах в одном экземпляре Tomcat 6. Тем не менее, я столкнулся с проблемой со средой Spring и регистрации бина. Вот ошибка, которую я вижу ...

org.springframework.jmx.export.UnableToRegisterMBeanException: Невозможно зарегистрировать MBean [Com.dti.servlets.Configuration@3a1834] с ключом 'EAM: name = webConfig'; вложенными исключение javax.management.InstanceAlreadyExistsException: EAM: имя = WebConfig

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

1 Ответ

1 голос
/ 07 февраля 2010

Проблема в том, что имя компонента должно быть уникальным для каждой виртуальной машины Java. Поскольку вы развертываете один и тот же war дважды, у вас есть два решения:

  1. изменить регистрационное поведение экспортера Spring JMX (см. Документацию )
  2. определите свой собственный ObjectNamingStrategy для динамического изменения имени bean-компонентов при запуске (в итоге вы получите имена, такие как app1.mybean и app2.mybean )
...