0

这真的很令人沮丧,我将不胜感激,因为我在即将到来的周末进行部署,突然应用程序停止工作。我有一个 Spring 4.3.3 应用程序托管在带有 JDK 1.7 的 Apache Tomcat 7 上。当应用程序突然停止加载所有 JS、CSS 和图像文件时,应用程序运行良好,HTTP 状态代码为 405(不允许获取方法)。我所做的唯一值得注意的更改是更新了安装在我笔记本电脑上的 Java。我什至卸载了那个版本的java,但没有任何好处。

chrome的network选项卡显示如下结果。

在此处输入图像描述

Chrome浏览器中显示的错误如下:

General:
    Request URL:http://localhost:8080/TractivityPhase3/resources/ui/jquery-ui.css
    Request Method:GET
    Status Code:405 Method Not Allowed
    Remote Address:[::1]:8080
    Referrer Policy:no-referrer-when-downgrade
Response Headers:
    view source
    Allow:POST
    Content-Length:96
    Content-Type:text/html;charset=ISO-8859-1
    Date:Mon, 10 Jul 2017 12:12:49 GMT
    Server:Apache-Coyote/1.1
Request Headers:
    view source
    Accept:text/css,*/*;q=0.1
    Accept-Encoding:gzip, deflate, br
    Accept-Language:en-US,en;q=0.8
    Connection:keep-alive
    Cookie:JSESSIONID=8F5257A38E3AC1FBBD4BCF0A869A5A05
    Host:localhost:8080
    Referer:http://localhost:8080/TractivityPhase3/login
    User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36

我的 web.xml 代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" 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">
    <display-name>Spring MVC Application</display-name>
    <welcome-file-list>
        <welcome-file>createIdeaPublic</welcome-file>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
    <display-name>Tractivity</display-name>
    <session-config>
        <session-timeout>120</session-timeout>
    </session-config>
    <servlet>
      <servlet-name>Tractivity</servlet-name>
      <servlet-class>
         org.springframework.web.servlet.DispatcherServlet
      </servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
      <servlet-name>Tractivity</servlet-name>
      <url-pattern>/</url-pattern>
   </servlet-mapping>
   <listener>
        <listener-class>com.soft.utils.SessionListener</listener-class>
    </listener>
   <error-page>
    <location>/jsp/components/jspError.jsp</location>
    </error-page>
</web-app>

Dispatcher-Servlet 配置如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:mvc="http://www.springframework.org/schema/mvc"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 http://www.springframework.org/schema/mvc
 http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
 http://www.springframework.org/schema/context
 http://www.springframework.org/schema/context/spring-context-3.0.xsd
 http://www.springframework.org/schema/aop
 http://www.springframework.org/schema/aop/spring-aop-3.0.xsd ">

   <context:component-scan base-package="com.soft.controllers, com.soft.ajax,com.soft.services, com.soft.daos" />

   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/jsp/templates/" />
      <property name="suffix" value=".jsp" />
   </bean>

    <mvc:resources mapping="/resources/ui/**" location="/resources/ui/jquery-ui-1.12.1.custom/" />
    <!-- <mvc:resources mapping="/resources/ui/**" location="/resources/ui/jquery-ui-1.12.1.custom/" /> -->
    <mvc:resources mapping="/resources/**" location="/resources/" />
    <mvc:annotation-driven/>
    <!-- 
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driverClassName}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean> -->

    <aop:aspectj-autoproxy proxy-target-class="true"/>

    <bean id="dataSource" class="com.soft.utils.SecureDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}"/>
        <property name="url" value="${jdbc.url}"/>
         <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/> 
    </bean>

    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <constructor-arg ref="dataSource"></constructor-arg>
    </bean>


    <context:property-placeholder location="jdbc.properties, security.properties"/>

   <!--  <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
         setting maximum upload size
        <property name="maxUploadSize" value="100000" />
    </bean> -->

    <bean id="emailer" class="com.soft.utils.Emailer">
    <property name="host" value="localhost"/>
        <property name="from" value="CIActivityTracker@abc.com"/>
        <property name="username" value="368649312300d9094a62" />
        <property name="password" value="cbe8181247b9785036ee" />    

    </bean>

    <bean id="ldapContextSource" class="com.soft.utils.LdapContextSource">
        <property name="url" value="${ldap.url}"/>
        <property name="base" value="${ldap.base}"/>
        <property name="userDn" value="${ldap.userDn}"/>
        <property name="pass" value="${ldap.password}"/>
        <property name="referral" value="follow"/>
        <property name="ldapAuthentication" value="${ldap.authentication}"/>
    </bean>

    <!-- Aspect -->
    <bean id="logAspect" class="com.soft.aspect.LoggingAspect" />


    <bean id="simpleJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="quartzExample" />
        <property name="targetMethod" value="printMessage" />
    </bean>
    <bean id="quartzExample" class="com.soft.quartz.QuartzExample">
        <property name="dbcViewName" value="${dbc.view}"/>
    </bean>

    <bean id="dailyTrigger"  class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="simpleJobDetail" />
        <property name="cronExpression" value="0 0/2 * * * ? *" />
    </bean>

    <bean id="weeklyTrigger"  class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="simpleJobDetail" />
        <property name="cronExpression" value="0/6 * * ? * L *" />
    </bean>

    <bean id="monthlyTrigger"  class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="simpleJobDetail" />
        <property name="cronExpression" value="0/6 * * L * ? *" />
    </bean>

    <bean id="quarterlyTrigger"  class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="simpleJobDetail" />
        <property name="cronExpression" value="0/1 * * L MAR,JUN,SEP,DEC ? *" />
    </bean>

    <bean id="annualTrigger"  class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="simpleJobDetail" />
        <property name="cronExpression" value="0/1 * * 31 12 ? *" />
    </bean>

    <bean  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
<!--                <ref bean="dailyTrigger" /> -->
                <ref bean="dailyTrigger" />
            </list>
        </property>
    </bean>
</beans>

编辑: 我通过将以下内容添加到 web.xml 来临时解决了这个问题。但是,我想要一种通过 Dispatcher Servlet 标记来处理它的干净方法。

<servlet-mapping>
      <servlet-name>default</servlet-name>
      <url-pattern>*.js</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
      <servlet-name>default</servlet-name>
      <url-pattern>*.css</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
      <servlet-name>default</servlet-name>
      <url-pattern>*.PNG</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
      <servlet-name>default</servlet-name>
      <url-pattern>*.png</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
      <servlet-name>default</servlet-name>
      <url-pattern>*.gif</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
      <servlet-name>default</servlet-name>
      <url-pattern>*.ico</url-pattern>
    </servlet-mapping>
4

0 回答 0