изменение шаблона URL, файл приветствия показывает 404

1

У меня есть файл web.xml.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>SeekLocal</display-name>
<welcome-file-list>
  <welcome-file>index.html</welcome-file>
</welcome-file-list>
<servlet>
  <servlet-name>Resteasy</servlet-name>
  <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>Resteasy</servlet-name>
  <url-pattern>/*</url-pattern>
</servlet-mapping>
<context-param>
  <param-name>javax.ws.rs.Application</param-name>
  <param-value>com.ba.rs.webservices.LocalApplication</param-value>
</context-param>
<listener>
  <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>
</web-app>

Теперь, если я изменяю шаблон url из

<url-pattern>/*</url-pattern> to <url-pattern>/app/*</url-pattern>

он начинает показывать index.html, но тогда я не могу получить доступ к веб-службам. я обыскал интернет и обнаружил, что есть какой-то фильтр, который будет применяться, но я не могу найти полное решение. я попытался не менять шаблон url и применять форвардер, но все же он не показывал index.html. подскажите мне, что я должен сделать, чтобы изменить шаблон url приложения при работе index.html. Я использую контейнер, как показано ниже, чтобы добавить классы веб-сервисов, о которых говорится ниже.

package com.ba.rs.webservices;

import java.util.Set;
import java.util.HashSet;
import javax.ws.rs.core.Application;

public class LocalApplication extends Application {

  private Set<Object> singletons = new HashSet<Object>();
  private Set<Class<?>> empty = new HashSet<Class<?>>();
  public LocalApplication(){
    //add WS Classes in here.
     singletons.add(new UserWS());

}
@Override
public Set<Class<?>> getClasses() {
     return empty;
}
@Override
public Set<Object> getSingletons() {
     return singletons;
}

}

  • 0
    это просто отдых, а не майка. я редактировал вопрос
Теги:
url
web-services
jax-rs
resteasy

1 ответ

1
Лучший ответ

Я решил вопрос, добавив следующие строки в web.xml

<context-param>
  <param-name>resteasy.servlet.mapping.prefix</param-name>
  <param-value>/rest</param-value>
</context-param>

и изменение следующего

<url-pattern>/*</url-pattern> to <url-pattern>/rest/*</url-pattern>

благодаря @Nebelmann, который ответил на аналогичный вопрос по следующей ссылке.

RESTEasy - @Path, требующий полного пути?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню