2016-12-14 10 views
0

Ich versuche, einen Anlegesteg Server bereitzustellen. Die Bereitstellung ist in Ordnung und ich kann auf alle Ressourcen zugreifen. Aber ich kann nicht auf die Dateien in web Stammverzeichnis zugreifen, speziell index.html. Hier sind meine Konfigurationen:Zugriff auf index.html vom Jetty aus möglich

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> 

Verzeichnisstruktur:

. 
├── 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 

Die extrahierte war wie folgt aussieht:

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

application.wadl wie folgt aussieht:

enter image description here

Nach mir Kontextpfad ist / wie ich es markiert root sein, in intellij und auch die ping Ressource auf / zugreifen Ich bin in der Lage.

Aber ich bin nicht in der Lage index.html zuzugreifen:

Antwort

2

ich das Problem habe. Das Problem ist

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

in web.xml. Diese Klausel leitete alle Anfragen an das Jersey-Servlet weiter (ServletContainer). Ich änderte gerade die Regel zu api/* und index.html fing an zu arbeiten.

Verwandte Themen