我遇到mvc:resources
我的main-servlet.xml
**
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="50000000" />
</bean>
<mvc:resources mapping="/images/**" location="/images/" />
<mvc:resources mapping="/css/**" location="/css/" />
**
当我评论mvc:resources
行时,一切(其他)开始神奇地工作。但是,当我取消注释行时,只有资源可用。在编译时,log表示仅映射了css / **和images / **,并且没有其他映射。
Web.xml文件:
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/css/**</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/images/**</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
我尝试了2个调度程序servlet,但这也不起作用。另一个servlet被读取并被映射,但请求默认为主servlet。
编辑日志AFTER评论后/ css / **和/ images / **:
**
org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/images/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0'
Nov 26, 2013 11:40:40 AM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/css/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#1'
Nov 26, 2013 11:40:40 AM org.springframework.web.servlet.FrameworkServlet initServletBean
INFO: FrameworkServlet 'resources': initialization completed in 220 ms
Nov 26, 2013 11:40:40 AM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'main'
Nov 26, 2013 11:40:40 AM org.springframework.web.servlet.FrameworkServlet initServletBean
**
INFO: FrameworkServlet 'main': initialization completed in 234 ms
Nov 26, 2013 11:40:40 AM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Nov 26, 2013 11:40:40 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Nov 26, 2013 11:40:53 AM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/KT/] in DispatcherServlet with name 'main'
答案 0 :(得分:3)
请注意,您的当前设置都不会注册任何控制器。你需要添加
<mvc:annotation-driven />
到您的上下文,以便Spring使用DispatcherServlet
注册它们。
您的main
DispatcherServlet
也应该简单地映射到
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
其他的都是多余的。
答案 1 :(得分:0)
这个问题已经得到解答,但在解决问题时遇到了一系列问题,所以我想留下一些解决方案,以防万一有人遇到类似的问题:
第1期和首期:mvc:资源行为不端(有问题的详情) 解决方案:完全按照建议的答案解决。 (
第2期(参见第1个堆栈跟踪):当您没有结束标记时发生) 解决方案:在结尾处添加“/”或在之后添加(也接受的答案是正确的)
第3期(第2次(最后一次)堆栈跟踪):当您没有以下依赖项时发生:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.3.1.Final</version>
</dependency>
另外。如果你正在使用Tika&amp; Solrj togather,选择更高版本的sl4j-api。选择较低版本会导致一大堆其他问题(抱歉没有堆栈跟踪)。
我的版本:Solr 3.6.2,Solrj 4.4.0,Tika 1.4。