2016-12-14 5 views
0

Я пытаюсь развернуть причал. Развертывание происходит нормально, и я могу получить доступ ко всем ресурсам. Но я не могу получить доступ к файлам в корневом каталоге web, в частности index.html. Вот мои конфигурации:Невозможно получить доступ к index.html from jetty

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
     version="3.1"> 

    <!--REST SERVLET--> 
    <!--This need to add so that spring is called before jersey--> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <!--This need to add so that jersey knows where is spring config--> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>classpath*:/conf/my_spring/spring*.xml</param-value> 
    </context-param> 

    <servlet> 
     <servlet-name>REST Service</servlet-name> 
     <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
     <!-- Register resources and providers under com.altinn.rest package. --> 
     <init-param> 
      <param-name>jersey.config.server.provider.packages</param-name> 
      <param-value> 
       com.altin.api;com.fasterxml.jackson.jaxrs.json 
      </param-value> 
     </init-param> 
     <init-param> 
      <!--http://howtodoinjava.com/jersey/jersey-file-upload-example/--> 
      <param-name>jersey.config.server.provider.classnames</param-name> 
      <param-value>org.glassfish.jersey.media.multipart.MultiPartFeature</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>REST Service</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

Структура каталога:

. 
├── build.gradle 
├── java-api.iml 
├── resources 
│   └── conf 
│    └── my_spring 
│     └── spring-config.xml 
├── src 
│   └── com 
│    └── altin 
│     └── api 
│      └── base 
│       ├── AuthenticationFilter.java 
│       ├── PingRestAPI.java 
│       └── config 
│        └── spring 
│         └── ApiSpringConfig.java 
└── web 
    ├── WEB-INF 
    │   └── web.xml 
    └── index.html 

Извлеченный war выглядит следующим образом:

$ tree -L 2 
. 
├── META-INF 
│   └── MANIFEST.MF 
├── WEB-INF 
│   ├── classes 
│   ├── lib 
│   └── web.xml 
└── index.html 

application.wadl выглядит следующим образом:

enter image description here

По мне Context Путь / как я пометил его как корень в IntelliJ, а также я могу получить доступ к ресурсу ping на /.

Но я не могу получить доступ к index.html:

ответ

2

я получил вопрос. Выпуск

<servlet-mapping> 
    <servlet-name>REST Service</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

в web.xml. Этот пункт пересылал все запросы на сервлет (ServletContainer). Я только что изменил правило до api/* и начал работу index.html.