No mapping found for HTTP request with URI的异常的处理。
1.你的项目应该没有编译。build一遍你的项目。
2.我也遇到这样的问题,把<context:component-scan base-package="xxx.yyy.zzz">改成你controller层的上一级目录包就行了 ,
比如你的controller类全部放在com.org.yy下,你只要扫描到com.org.*下就行了 和hibernate的注解一个样,具体为什么我也没去研究
这个可能是扫描的地方出粗了,上句话是我应用的
3.如果说mapper找不到类,重新compile一下。
cannot change version of project facet Dynamic web module to 2.5
分享| 2014-03-27 11:03
赛枫fy521m
|
浏览 21909 次
为什么将jre改到1.6,还是无法改变dynamic web module 到2.5啊
在工程目录下有一个.settings文件夹,打开org.eclipse.wst.common.project.facet.core.xml做如下修改:
<installed facet="jst.web" version="2.5"/>
3.
最近需要使用Maven将项目自动部署到Tomcat,在网络上也查找了很多文章,内容大同小异,今天打算在这里给自己做一个小总结
参考网址:http://blog.csdn.net/dilaomimi/article/details/6955850
我使用的环境是:Eclipse Java EE IDE for Web Developers(Helios Service Release 1)
apache-tomcat-6.0.10
apache-maven-2.2.1
通常的做法是这样的
1、配置Tomcat访问权限,要打开tomcat的manager功能;在conf文件夹下的tomcat-users.xml的<tomcat-users>标签内添加如下内容
<tomcat-users>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="password" roles="admin,manager"/>
<tomcat-users>
启动tomcat访问http://localhost:8080/manager输入配置的用户名和密码看是否可以登录,如果可以进下一步
2、配置maven的settings.xml(我本机的路径是在C:\Documents and Settings\Administrator\.m2)添加一个server
<server>
<id>myserver</id>
<username>admin</username>
<password>admin</password>
</server>
3、pom.xml中配置如下内容
<build>
<directory>target</directory><!-- 这是打包的文件的路径。默认是该工程的根目录。 -->
<finalName>mavenwebdemo</finalName><!--生成的目标文件名 -->
<plugins><!-- tomcat 的插件 -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1-SNAPSHOT</version>
<configuration>
<!-- <path>/mavenwebdemo</path> -->
<url>http://localhost:8080/manager/html</url>
<server>tomcat</server>
</configuration>
</plugin>
</plugins>
</build>
注意:如果使用tomcat7,version用1.1是不能部署成功的,改用1.2-SNAPSHOT
以上几步完成以后就可以执行如下操作了
(1) cd到项目的目录
(2) mvn clean install
(3) mvn tomcat:redeploy
通过以上操作就可以通过maven把项目自动部署到tomcat了
遗留问题:我这里使用的是apache-tomcat-6.0.10,如果换成最新的版本apache-tomcat-6.0.36则无法正常发布;提示的异常内容是:Cannot invoke Tomcat manager: Server rened HTTP response code: 403 for URL. 个人怀疑是tomcat中的manager不同所造成的,具体问题没有时间考虑了,以后再研究,也请各位高人指点,谢谢先了!
============================== 分割线 ==============================
上面我也提到了使用eclipse IDE进行maven的自动发布,这里我也简单介绍一下
eclipse配置maven的方式我这里就略过了
首先我们需要通过eclipse创建一个maven project,创建的时候需要设置packaging为war(参考:http://blog.csdn.net/smilevt/article/details/8215558)
接下来我们需要创建和配置一个server,步骤如下:
1、new - other - server
2、选择服务器类型
3、选择tomcat安装路径和JRE
4、创建server完成,结构如下
5、接下来需要配置项目在tomcat中的映射,修改修改tomcat的配置如下:
Server Locations中选择Use Tomcat installation,同时设置Deploy Path为项目源码中的targe中的对应路径,我的项目名称是mavenwebdemo,工作区是dev-demo,设置对应的Deploy Path为:D:\dev-demo\workspace-demo\mavenwebdemo\target\mavenwebdemo
7、添加Tomcat Modules,这个可以理解成在tomcat的server.xml中添加context映射
设置后可以在创建的server中查看
至此我们已经完成了server的创建的配置
接下来我们可以使用eclipse IDE通过maven对项目进行编译发布,然后启动server中的tomcat进行调试了
双击下图所示的图标就会出现这个框
项目上有红叉提示错误,但是整个项目没有任何文件有错,这是怎么回事啊
错误现象如图
在上图的情况下,使用maven update项目,在error Log中会出现如下提示
解决办法就是:
右键项目,【Maven】--》【Update Project Configuration...】即可。。。
最近项目中使用到Spring3,在感叹Spring3注解配置清爽的同时竟然出现了这个不和谐的事情,实在无法忍受
问题:部署项目后程序加载或用浏览器访问时出现类似的警告,2011-01-19 10:52:51,646 WARN [org.springframework.web.servlet.PageNotFound] -<No mapping found for HTTP request with URI [/sandDemo001/images/1.jpg] in DispatcherServlet with name 'spring'>,主要看尖括号内部分。
问题原因:罪魁祸首是web.xml下对spring的DispatcherServlet请求url映射的配置,原配置如下:
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
分析原因:<servlet-mapping>的<url-pattern>/</url-pattern>把所有的请求都交给spring去处理了,而所有available的请求url都是在Constroller里使用类似@RequestMapping(value = "/login/{user}", method = RequestMethod.GET)这样的注解配置的,这样的话对js/css/jpg/gif等静态资源的访问就会得不到。
解决方法:在web.xml里添加如下的配置
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</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>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
解决方法2:在spring的配置文件中添加如下一行:
<mvc:default-servlet-handler/>
注意,需要是spring3.0.5以上版本
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<mvc:resources mapping="/resources/**" location="/resources/" />
这个配置告诉spring 静态资源的处理方式
评论
# re: Spring3中js/css/jpg/gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决[未登录] 2012-08-14 11:27 1
11111 回复 更多评论
# re: Spring3中js/css/jpg/gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决 2014-01-08 10:42 王林
正解 回复 更多评论
# re: Spring3中js/css/jpg/gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决 2015-09-10 20:34 未登录
万能的神啊!! 感谢您 回复 更多评论
# re: Spring3中js/css/jpg/gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决 2015-09-10 20:38 未登录
我的QQ:2602200571
大神,就是不知道能不能通配,要是图片文件夹有很多的话,岂不是要配置好多次? 回复 更多评论