Встроенный 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>