it-swarm.com.ru

Исходный сервер не может быть раскрыт в настоящий момент. при развертывании на кота

Я построил приложение, используя Spring с Eclipse IDE. Когда я запускаю проект из Eclipse IDE, все в порядке, но когда я упаковываю проект maven в файл war и развертываю его на отдельном Tomcat, у меня возникает эта проблема

The Origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

Это фрагмент конфигурации из моего файла XML

<!-- View Resolver -->
    <beans:bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/pages/" />
        <beans:property name="suffix" value=".jsp" />
    </beans:bean>

Я пытаюсь получить доступ к этому контроллеру 

@RequestMapping(value = {"/welcome", "/"})
    public String defaultPage() {
            return "Web Service data successfuly consumed";


    }

кто-нибудь с идеей, почему это не удается развернуть на Tomcat?

11
Blaze

Я боролся с этой проблемой много раз.

Решение, которое я в настоящее время использую, заключается в том, чтобы веб-приложение (или папка, в которой вы сохраняли представления, например jsp) находилось в сборке развертывания.

Для этого Right click on the project > Build Path > Configure Build path > Deployment Assembly > Add(right hand side) > Folder > (add your jsp папка. В случае по умолчанию это src/main/webapp)

Вы также можете получить эту ошибку после того, как все сделали правильно, но в JSP вы добавили метку привязки по старинке (я добавляю этот случай, если это поможет кому-то еще с той же проблемой). 

У меня был следующий синтаксис на JSP. <a href="/mappedpath">TakeMeToTheController</a> и я продолжал видеть ошибку, упомянутую в вопросе. Однако изменение тега на показанный ниже решило проблему.

<a href=" <spring:url value="/mappedpath" /> ">TakeMeToTheController</a>
7
tadtab

Я получил ту же ошибку при работе в Spring Boot Application, потому что при работе в Spring Boot легко сделать localhost:8080/hello/World, но когда вы создали артефакт и развернули в Tomcat, вам нужно переключиться на использование localhost:8080/<artifactName>/hello/World

5
Ryan D

Если вы разрабатываете загрузочное приложение Spring, добавьте SpringBootServletInitializer, как показано в следующем коде, в ваш основной файл. Потому что без SpringBootServletInitializer Tomcat будет рассматривать его как обычное приложение, которое не будет считаться загрузочным приложением Spring.

@SpringBootApplication
public class DemoApplication extends *SpringBootServletInitializer*{

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
         return application.sources(DemoApplication .class);
    }

    public static void main(String[] args) {
         SpringApplication.run(DemoApplication .class, args);
    }
}
3
JEETHESH KARKERA

Почти ту же проблему можно решить, создав файл geoexplorer.xml в /opt/Apache-Tomcat-8.5.37/conf/Catalina/localhost Содержимое файла geoexplorer.xml 

<Context displayName="geoexplorer" docBase="/usr/share/opengeo/geoexplorer" path="/geoexplorer"/>
0
Rakeshwar Verma

Пытаясь запустить сервлет в Eclipse (щелчок правой кнопкой мыши + «Запуск на сервере»), я столкнулся с той же проблемой: «Статус HTTP: 404/Описание: Исходный сервер не нашел текущего представления для целевого ресурса или не хочет раскрывать, что он существует. " Добавление index.html не помогло, а также не изменило различные настройки Tomcat.

Наконец, я обнаружил проблему в неожиданном месте: в Eclipse опция «Построить автоматически» не была установлена. Таким образом, сервлет не был скомпилирован, и файл "myServlet.class" не был развернут на сервере (в моем случае это путь .wtpwebapps/projectXX/WEB-INF/classes/XXpackage /). Сборка проекта вручную и перезапуск сервера решил проблему.

Моя среда: Eclipse Neon.3, выпуск 4.6.3, Tomcat-версия 8.5.14., ОС Linux Mint 18.1.

0
Buffy Underrun

Я столкнулся с той же проблемой. 

Когда я щелкаю правой кнопкой мыши -> запустить на сервере, затем выбираю сервер вручную, он работает.

Делать

Alt+Shift+X

затем вручную выберите свой сервер. Это может помочь.

0
eVader

Я также столкнулся с той же проблемой, и я решил ее, поместив файл web.xml и файл applicationcontext.xml в папку WEB-INF.

Надеюсь это поможет :)

0
krati

В Eclipse перейдите в Project -> автоматически нажмите на build, после чего попытайтесь выполнить 

0
Aiyaz Sattar

Если это проект maven, то Maven Update решит проблему - щелкните правой кнопкой мыши на Project -> Maven -> Update Project и запустите ваш проект в обычном режиме.

0
Rudy

Решение одно: Изменить версию Apache Tomcat (последняя версия предпочтительнее) (ручной процесс).

Решение второе: Установите последнюю версию Eclipse IDE и настройте сервер Apache Tomcat (внутренне автоматический процесс i, e Eclipse обрабатывает часть конфигурации).

После успешной процедуры автоматического процесса, ручной процесс должен работать хорошо. 

0
Akshay Kumar