Дело в том, что на одном сервере Tomcat может быть развернуто несколько приложений, каждое в своем так называемом контексте . Приложения развертываются в папке webapps
, и каждая папка сопоставляется с одним context , тогда как папка ROOT
используется по умолчанию (без контекста).
Чтобы получить доступ к приложению в Tomcat, вы указываете контекст после URL. Например, если у вас есть приложение (контекст) Test
в папке webapps/Test
, вы получите к нему доступ следующим образом:
http://localhost:8080/Test
Но приложения в папке ROOT
не имеют контекста и доступны, просто перейдя на localhost:8080
. И это ваш случай. Tomcat ищет ваше приложение непосредственно в папке ROOT
, но ваше приложение находится в папке ROOT/war
. Другими словами, вызов RPC предполагает, что папка myproject
находится в папке ROOT
, а не в папке ROOT/war
. Вот почему это не работает.
Если вы все еще хотите, чтобы ваша папка war
находилась в папке ROOT
, вам придется изменить url-pattern
на /war/myProject/call
.