如何配置Jersey访问js / css文件

问题描述

我正在使用Java8 + Maven3.6.3创建一个jersey rest服务,该服务包含一个html页面和一些js / css文件

html文件引用js文件,如下所示:

<script src="js/jsfile.js">

我的pom.xml包括

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.enterprise</groupId>
            <artifactId>cdi-api</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.ejb</groupId>
            <artifactId>javax.ejb-api</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>javax.ws.rs-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet</artifactId>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-json-jackson</artifactId>
            <version>2.23.2</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-jaxb</artifactId>
            <version>2.23.2</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-moxy</artifactId>
            <version>2.23.2</version>
        </dependency>

和tomcat信息:

    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.1</version>
            <executions>
                <execution>
                    <id>tomcat-run</id>
                    <goals>
                        <goal>exec-war-only</goal>
                    </goals>
                    <phase>package</phase>
                    <configuration>
                        <path>/</path>
                            <attachartifactclassifier>server</attachartifactclassifier>                         <attachartifactclassifiertype>jar</attachartifactclassifiertype>
                </configuration>
            </execution>
        </executions>
    </plugin>

在我的src / main / webapp文件夹中,有一个index.html页面。我已将端口配置为8080。

如果我现在通过Web浏览器调用localhost:8080,则可以找到index.html,但是未加载引用的js文件

我尝试了多种方法来放置js文件(在资源,webapp等中)并配置web.xml,但是似乎没有任何组合可以使用。

所以我的问题是:这怎么了?

我的web.xml如下所示:

    <filter>
        <filter-name>jersey-serlvet</filter-name>
        <filter-class>org.glassfish.jersey.servlet.ServletContainer</filter-class>
        <init-param>
             <param-name>jersey.config.server.provider.packages</param-name>
             <param-value>com.packages.to.restResources</param-value>
        </init-param>
            <!-- pass to next filter if Jersey/App returns 404 -->
        <init-param>
            <param-name>jersey.config.servlet.filter.forwardOn404</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
   
    <filter-mapping>
        <filter-name>jersey-serlvet</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

那么我的配置有什么问题?我该如何配置web.xml才能找到静态内容文件(如webbapp目录中的js / css文件)?

谢谢您的建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)