maven工程部署到tomcat服务器过程中遇到的问题总结
2015-01-10 22:32
483 查看
1、部署到自己配置的tomcat服务器上遇到的错误
我按照网上的步骤,在myeclipse中配置了maven、tomcat,还整理了下配置的过程。但是发现会出现各种错误,主要是Server returned HTTP response code: 403 Cannot invoke Tomcat manager: unknown protocol:plugin found for prefix 'tomcat7' in the current project and in the plugin groups
网上一直在说:产生该问题有可能因为两个原因,具体参见解决办法
解决办法:
1)如果使用的是Tomcat 7,需要修改pom.xml中部署的url地址,将<url>http://localhost:8080/manager</url>改<url>http://localhost:8080/manager/text</url>
2)给tomcat用户权限分配上,需要同时具备manager-gui和manager-script权限,我在遇到该问题时,就是忘了分配manager-script权限。
正确的conf/tomcat-users.xml配置应为:
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin” password="admin" roles="manager-gui, manager-script"/>
</tomcat-users>
但是我试了很多次都没用,还是报这个错误,并且是不是出来各种奇怪的错误,这个错误折腾了我一天。终于,我请教了同学,之前我部署的命令一直是
tomcat6:deploy,同学建议我用tomcat6:run,这两者的区别是前者部署到外部服务器,后者部署到myeclipse内部服务器上,后来我直接放弃了部署到外部服务器上,选择了部署到内部服务器上,上面那个错误终于没有出现了,还是部署到内部服务器上方便快捷。
2、 部署到内部服务器上后出现的错误
java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter在网上找了下原因,大概说的是我的servler-api.jar包冲突,原因解释如下:
使用maven生成web工程后,编译需要下servlet-api.jar和jsp-api.jar文件。
tomcat 启动后先将tomcat/lib目录下的jar包全部读入内存,如果webapps目录里的应用程序中WEB-INF/lib目录下有相同的包,将无法加载,
不同版本的包之间也会造成类似问题
解决这个问题的方法就是对于servlet-ap.jar 使用 <scope>标签,编译的时候用到servlet-api和jsp-api,但在打包的时候不用这两个依赖,如下
<span style="font-family:Comic Sans MS;"> <strong><dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.4</version> <scope>provided</scope> </dependency></strong></span>pom文件中的写法为:
<span style="font-family:Comic Sans MS;"><strong><dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1-b02</version> <type>jar</type> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency></strong></span>这种写法在使用mvn targe命令时有效的,但是在eclipse下run on server下,会把依赖的mavne dependencies这个library下面的全部jar都加载到tomcat的部署目录下面去。
个人认为这是eclipse的maven插件的不兼容导致的。
解决这种冲突有两种
1:把加载后的删掉
2:把server runtime这个library加到build path下面去。
原来真的是maven动态web项目jar包冲突的问题,不过我的不是servler-api.jar包冲突,而是我在pom.xml多写了一个
tomcat7-maven-plugin的dependency,所以造成了jar包冲突,终于一大堆的问题解决了,web工程终于可以部署到tomcat服务器上运行了,
这些问题整整折磨了我两天。
相关文章推荐
- 阿里云服务器linux环境,从启动tomcat服务器外网访问--->绑定域名--->Navicat远程连接mysql--->阿里云服务器部署项目过程中,一定会遇到的五大问题;
- tomcat程序部署到weblogic遇到的问题总结:
- ORACLE 11g RAC部署GRID过程中遇到的问题总结
- Java开发环境配置(5)--Web 服务器--Tomcat--安装过程遇到的问题
- maven构建项目自动部署到tomcat中遇到的各种sb问题总结
- 部署Pentaho BI服务器到独立Tomcat所碰到的问题总结
- Spring Boot部署到Tomcat过程中遇到的问题汇总
- maven构建项目自动部署到tomcat中遇到的各种sb问题总结
- maven构建项目自动部署到tomcat中遇到的各种sb问题总结
- Linux 服务器下 tomcat9的安装部署(SSL证书部署)以及遇到的问题解决
- maven构建项目自动部署到tomcat中遇到的各种sb问题总结
- 刀片服务器部署VMWare vSphere遇到的问题总结
- java开发的时候在tomcat服务器中遇到的问题总结
- 远程部署服务器遇到的问题总结
- WebLogic使用总结(五)——Web项目使用Sigar在WebLogic服务器部署遇到的问题
- tomcat程序部署到weblogic遇到的问题总结
- 通过 Socket 发送 Http协议 上传图片到速卖通服务器过程中遇到的一些小的问题 总结
- WebLogic使用总结(五)——Web项目使用Sigar在WebLogic服务器部署遇到的问题
- 搭建服务器过程中遇到的问题总结
- maven构建项目自动部署到tomcat中遇到的各种sb问题总结