2015-02-19 5 views
0

Я создаю веб-службу с помощью Spring @RestController. При тестировании на местном уровне все в порядке. Однако, после развертывания приложения на удаленном сервере приложений, я получаю обратно 404 при попадании на ту же конечную точку. Вот мои коды:Получение 404 после развертывания на сервере приложений, но не локально

@RestController 
public class HelloRestController 
{ 
    @RequestMapping( value = "/hello", method = RequestMethod.GET) 
    public String hello() 
    { 
     return "hello"; 
    } 
} 

Вот мой инициализатор веб-приложений. Примечание. У меня нет файла web.xml.

public class MyApplicationInitializer implements WebApplicationInitializer 
{ 
    @Override 
    public void onStartup(ServletContext servletContext) throws ServletException 
    { 
     AnnotationConfigWebApplicationContext ctx = 
      new AnnotationConfigWebApplicationContext(); 

     servletContext.addListener(new ContextLoaderListener(ctx)); 

     ctx.register(WebApplicationConfig.class, ApplicationConfig.class); 

     ctx.setServletContext(servletContext); 

     Dynamic dispatcher = 
      servletContext.addServlet("SpringServlet", new DispatcherServlet(ctx)); 

     dispatcher.addMapping("/"); 
     dispatcher.setLoadOnStartup(1); 
    } 
} 

Когда я развернуть приложение локально Tomcat-8.0.15 и нажмите "локальный: 8080/MYAPP/привет", она возвращает "привет". Однако после развертывания приложения на удаленном сервере приложений (также Tomcat 8), я получаю обратно 404 при попытке попасть в ту же конечную точку.

Заранее благодарим за помощь!

+0

код выглядит хорошо, вы уверены, что tomcat работает на правильном порту и настроен правильно? – Epicblood

+0

есть. Я даже развернулся на облачном сервере, HANA Cloud Platform (HCP) и все еще получаю 404. Мне удалось увидеть страницу index.html: «remote.server.host/myApp», но не «remote.server.host/ MYAPP/привет». :( – KNSter

ответ

1

код действительно хорошо выглядит. дважды проверьте, есть ли какие-либо связанные с окружающей средой проблемы, которые приведут к сбою инициализации компонента весны. Это приведет к сбою сервлета диспетчера и, следовательно, может привести к 404. Общим проблемам может быть отказано в подключении базы данных, конфликтах классов, различиях JVM между удаленный сервер приложений и локальный.

Вы должны быть в состоянии найти некоторые журналы tomcat, чтобы узнать, есть ли проблемы на удаленном сервере.

+0

К сожалению, у меня нет доступа к удаленному серверу. Но я воспроизвел проблему на своем локальном компьютере, попросив Tomcat работать на более старой версии Java. Я буду работать с инженером по развертыванию и убедиться, что удаленное приложение сервер работает на той же версии Java, что и мой локальный. Спасибо Yunbugg !!! – KNSter

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

  • Нет связанных вопросов^_^