По дизайну два веб-приложения разделены различными загрузчиками классов и не могут получить доступ к памяти/загрузчикам друг друга. Однако, как ответили другие, есть определенные способы обойти это - и в зависимости от базовых требований вы можете принять плюсы и минусы различных решений.
Однако я бы сказал, что развязывание ваших уровней приложений к различным файлам WAR только для того, чтобы снова связать их с магией загрузчика классов (не зная больше о базовом приложении), может быть излишним и слишком много полагаться на детали реализации.
Учитывая ваше описание, вы, вероятно, можете хорошо справиться с настройкой доступа на уровне веб-сервисов между двумя приложениями. Для этого обратитесь к любому учебнику по веб-сервису. В качестве альтернативы рассмотрим варианты, подобные MessageBus.
Что-то, что было бы слишком тяжело, чтобы предложить на основе вашего вопроса, - это построение службы Liferay - это компонент, который абстрагирует различные контексты приложения для определенных вызовов API и позволяет вам прозрачно обращаться в другое приложение. Это связано с Liferay, хотя это может и не быть решением, которое вы ищете.
Хотя пользовательские решения могут существовать, всегда есть старый добрый способ использования сокетов ... Хотя это может показаться тяжелым с первого взгляда, он будет работать, даже если две войны будут разделены. Или вы можете абстрагироваться от различий и использовать любой лучший канал. – fge