2012-01-26 2 views
2

В Tomcat (или на другом сервере) есть две WAR, развернутые в Foo1.war и foo2.war. Все весенние бобы определены в foo1.war, но возможно ли получить эти весенние бобы в сервлете, который развернут в foo2.war? Я не могу просто использовать WebApplicationContextUtils, чтобы получить WebApplicationContext, правильно? Они разные ВОЙНЫ.Как получить WebApplicationContext за пределами текущего контекста сервлета?

благодаря

+0

Возможно, http://stackoverflow.com/questions/6807818/share-java-classes-between-war-files-in-tomcat может вам помочь. –

+0

@Tichodroma: http://stackoverflow.com/questions/6807818/share-java-classes-between-war-files-in-tomcat - это совместное использование классов и экземпляров, но не контекстов Spring. – Ralph

ответ

0

Технически, вы можете получить WebApplicationContext другого приложения, если вы подвергаете контекст сервлета и вызвать servletContext.getContext("/otherapp").getAttribute(..), но это некрасиво.

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

Если вам нужно сообщить некоторые данные между двумя приложениями, используйте другой механизм: веб-службы (мыло, отдых), обмен сообщениями (jmx).

0

Добавление к ответу @Bozho: вы также можете обмениваться данными экземпляра (например, singleletons), когда две WARs развернуты в одном EAR. Вы должны иметь возможность раскрывать appContexts как статически видимые поля в классе, предоставляемом EAR, и таким образом видимы для обеих WAR.

Смежные вопросы