Встроенный TOMCAT- внедрение сервиса RESTful с использованием JAX-RS в Джерси

Я хочу использовать встроенный сервер Tomcat в моем приложении. Я пытаюсь создать сервисы RESTful, используя Jersey JAX-RS, который при вызове возвращает такие данные, как названия банков, код IFSC конкретного имени банка и т. Д.

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

Я где-то читал, что для встроенного tomcat потребуется основной класс, поэтому я реализовал основной класс следующим образом: Ссылка: http://blog.sortedset.com/embedded-tomcat-jersey/

public class Main {
public static void main(String[] args) throws Exception, LifecycleException {
    new Main().start();
}

public void start() throws ServletException, LifecycleException,
        MalformedURLException {



    // Define a folder to hold web application contents.
   String webappDirLocation = "src/main/webapp/"; 
    Tomcat tomcat = new Tomcat();

    // Define port number for the web application
    String webPort = System.getenv("PORT");
    if (webPort == null || webPort.isEmpty()) {
        webPort = "8080";
    }
    // Bind the port to Tomcat server
    tomcat.setPort(Integer.valueOf(webPort));

    // Define a web application context.
     Context context = tomcat.addWebapp("/tomcatembedded", new File(
            webappDirLocation).getAbsolutePath());

    // Define and bind web.xml file location.
     File configFile = new File(webappDirLocation + "WEB-INF/web.xml");
     context.setConfigFile(configFile.toURI().toURL());

    tomcat.start();
    tomcat.getServer().await();    
}


}

Теперь щелкните правой кнопкой мыши на Project -> Run as Java Application, URL не загружает данные: localhost: 8080 / tomcatembedded / webapi / banksList

Что мне не хватает, неверный URL или какая-то конфигурация, которую мне не хватает?

Моя структура каталогов: Структура каталогов Eclipse

Мой web.xml:

<servlet>
    <servlet-name>Jersey Web Application</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>jersey.config.server.provider.packages</param-name>
      <param-value>sran.api.ifscLookup.resources</param-value>
    </init-param>
    <!--init-param>
      <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
      <param-value>true</param-value>
    </init-param-->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey Web Application</servlet-name>
    <url-pattern>/webapi/*</url-pattern>
  </servlet-mapping>
</web-app>

0 ответов

Другие вопросы по тегам