Проект JavaEE / Servlet / Tomcat распознает только JSP - PullRequest
0 голосов
/ 28 февраля 2020

Я создал сайт, используя java сервлеты и JSP, а также HTML, CSS и Javascript для внешнего интерфейса, но по какой-то причине неожиданно все файлы, кроме JSP и сервлетов, неожиданно игнорируются.

По сути, все мои файлы CSS, HTML и Javascript полностью игнорируются, поэтому я просто получаю то, что находится на JSP. Я буквально понятия не имею, почему. Для стилей я вынужден использовать <%@ page contentType="text/css;charset=UTF-8" language="java" %>. Если я пытаюсь использовать файл CSS, я получаю css ignored due to mime type mismatch из своего браузера.

Кроме того, URL должен заканчиваться JSP или быть отображением файла для сервлета, чтобы фактически привести к чему-либо , Если я захожу на mywebsite.com/page.html, я не перехожу на страницу, даже если файл html существует. Он работает только для JSP или сопоставления файлов сервлета.

Кроме того, моя страница 404 работает только для JSP, но не для сервлетов или любых других расширений файлов. mywebsite.com/page-that-doesnt-exist или mywebsite.com/page-that-doesnt-exist.html, переводит меня на мою домашнюю страницу вместо моей страницы 404. Однако, если я посещаю mywebsite.com/page-that-doesnt-exist.jsp, меня перенаправляют на мою страницу 404.

Просто на тот случай, если вы подумали, что эта проблема не может стать чем-то странным, я обнаружил, что файлы CSS / HTML / любые не JSP не игнорируются, если они находятся за пределами папки webapps, но игнорируются когда они в этом.

Вещи, которые я пробовал

  • Добавлено <mime-mapping><extension>css</extension><mime-type>text/css</mime-type></mime-mapping> в мои web.xml.

  • Изменение отображения файла моей страницы приветствия на что-то отличное от "/"

  • Возвращение к странице ошибки по умолчанию

My web. xml


<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">


    <welcome-file-list>
        <welcome-file>homepage</welcome-file>
    </welcome-file-list>

    <context-param>
        <param-name>DBusername</param-name>
        <param-value>root</param-value>
    </context-param>

    <context-param>
        <param-name>DBpassword</param-name>
        <param-value>chirag12</param-value>
    </context-param>

    <context-param>
        <param-name>uploadFilePath</param-name>
        <param-value>/usr/share/websitestuff</param-value>
    </context-param>

    ...
    a ton of servlet mappings that I edited out
    ...

    <servlet>
        <servlet-name>CommentCreator</servlet-name>
        <servlet-class>CommentUploader</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>CommentCreator</servlet-name>
        <url-pattern>/new-comment</url-pattern>
    </servlet-mapping>

    <error-page>
        <error-code>404</error-code>
        <location>/404</location>
    </error-page>

    <servlet>
        <servlet-name>testservlet</servlet-name>
        <servlet-class>TestServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>testservlet</servlet-name>
        <url-pattern>/test</url-pattern>
    </servlet-mapping>

</web-app> 

Любая помощь будет принята с благодарностью, потому что я вообще не понимаю этой проблемы.

1 Ответ

0 голосов
/ 28 февраля 2020

Ваш веб. xml кажется довольно коротким с большим количеством картинок пантомимы. Вот мое:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <description>OSP Web App.</description>
    <display-name>OSP-WEB</display-name>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
        /WEB-INF/configs/appServlet/config-context.xml,
        /WEB-INF/configs/appServlet/aop-context.xml,
        /WEB-INF/configs/appServlet/services-context.xml,
        /WEB-INF/configs/appServlet/security-context.xml,
        /WEB-INF/configs/root-context.xml
        classpath:net/bull/javamelody/monitoring-spring-datasource.xml 
        </param-value>
    </context-param>
    <context-param>
        <param-name>defaultHtmlEscape</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>spring.profiles.active</param-name>
        <!-- <param-value>pro</param-value>-->
        <param-value>dev</param-value>
        <!-- WARNING: DON'T EVER COMMIT THIS FILE TO SUBVERSION -->
        <!-- param "spring.profiles.active" MUST BE "pro" value at SUBVERSION -->
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!-- <listener> -->
    <!-- <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class> -->
    <!-- </listener> -->
    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>

    <servlet>
        <servlet-name>appServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/configs/appServlet/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        <async-supported>true</async-supported>
    </servlet>
    <servlet-mapping>
        <servlet-name>appServlet</servlet-name>
        <url-pattern>/spring/*</url-pattern>
    </servlet-mapping>
    <distributable />
    <!-- <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
        </filter> -->
    <!-- <filter> -->
    <!-- <filter-name>CharacterEncodingFilter</filter-name> -->
    <!-- <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> -->
    <!-- <init-param> -->
    <!-- <param-name>encoding</param-name> -->
    <!-- <param-value>UTF-8</param-value> -->
    <!-- </init-param> -->
    <!-- <init-param> -->
    <!-- <param-name>forceEncoding</param-name> -->
    <!-- <param-value>true</param-value> -->
    <!-- </init-param> -->
    <!-- </filter> -->
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <async-supported>true</async-supported>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter>
        <filter-name>HttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
        <async-supported>true</async-supported>
    </filter>
    <filter>
        <filter-name>hibernateFilter</filter-name>
        <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
        <async-supported>true</async-supported>
    </filter>

    <filter>
        <filter-name>monitoringAccess</filter-name>
        <filter-class>com.thetaedge.onespeks.security.filters.MonitoringFilter</filter-class>
        <async-supported>true</async-supported>
        <init-param>
            <param-name>username</param-name>
            <param-value>OneSpeksMonitoring</param-value>
        </init-param>
        <init-param>
            <param-name>password</param-name>
            <param-value>M0nit0ring</param-value>
        </init-param>
    </filter>
    <filter>
        <filter-name>monitoring</filter-name>
        <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
        <async-supported>true</async-supported>
    </filter>
    <!-- <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> 
        <url-pattern>/*</url-pattern> </filter-mapping> -->
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>HttpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>hibernateFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>monitoringAccess</filter-name>
        <url-pattern>/monitoring</url-pattern>
    </filter-mapping>
    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        <async-supported>true</async-supported>
    </filter>
    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <session-config>
        <session-timeout>60</session-timeout>
    </session-config>
    <mime-mapping>
        <extension>doc</extension>
        <mime-type>application/vnd.ms-word</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>gif</extension>
        <mime-type>image/gif</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>htm</extension>
        <mime-type>text/html</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>html</extension>
        <mime-type>text/html</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>jpeg</extension>
        <mime-type>image/jpeg</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>jpg</extension>
        <mime-type>image/jpeg</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>js</extension>
        <mime-type>text/javascript</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>pdf</extension>
        <mime-type>application/pdf</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>png</extension>
        <mime-type>image/png</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>txt</extension>
        <mime-type>text/plain</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>xls</extension>
        <mime-type>application/vnd.ms-excel</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>xml</extension>
        <mime-type>text/xml</mime-type>
    </mime-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
    </welcome-file-list>
</web-app>

Может быть, вы могли бы добавить необходимые и отсутствующие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...