项目只用struts但tomcat公用完整SSHjar包后部署失败问题解决办法

原创 2016年06月01日 10:49:48

背景

最近写了一个网站接口,因为功能简单,我就自己搭的环境,只用了Struts框架,连接数据库用的jdbc,本地启动正常,但是部署linux服务器就启动不了,查看了tomcat日志,发现好多报错信息,为了分清哪些是我的项目的错误,我删了自己本地项目的jar包,把tomcat共享jar包放自己项目本地启动,然后查看了控制台的报错信息,下面是部分报错,就逐个解决


解决

PS.公司用的Struts+Spring

  • 错误信息1
Looks like the Spring listener was not configured for your web app! 
Nothing will work until WebApplicationContextUtils returns a valid ApplicationContext.
You might need to add the following to web.xml: 
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
- Dispatcher initialization failed

这是因为有struts2-spring-plugin-xxx.jar包,需要配置监听,直接配在web.xml文件中即可

    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
  • 错误信息2
- Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml]
- Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]

这个错误提示是说的读取不到applicationContext.xml,当使用了spring后需要applicationContext.xml配置数据源事务aop之类的,很显眼,我是没有用到这些,但是这个文件依然需要存在,然后我就新建了一个,但是不做任何配置

applicationContext.xml文件信息

<?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:p="http://www.springframework.org/schema/p"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd" xmlns:context="http://www.springframework.org/schema/context">

    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" ></bean>  
    <bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true"></bean> 
</beans>

接下来就需要在web.xml中配置applicationContext.xml文件
在web.xml中添加一下配置信息

  <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:applicationContext.xml
        </param-value>
  </context-param>

然后重启项目,发现已经能正常启动

PS.还有一个错误信息,是在不知不觉中改好的,这里也提示一下

严重: Exception starting filter struts2
Class: com.opensymphony.xwork2.spring.SpringObjectFactory
File: SpringObjectFactory.java
Method: getClassInstance
Line: 230 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:230:-1

这是因为当有Spring时,action是用spring生成的,之所以报错就是因为没有配置ContextLoaderListener,就是文中第一步时配置的监听,当监听和applicationContext.xml都配置完毕后,这个错误自然而然就消失了


总结

jar使用不当会出现很多问题,所以做项目时一定要好好选jar包,也要注意服务器中的公用jar包

版权声明:开源精神,欢迎转载

tomcat中部署项目后,访问失败,报错404的原因以及解决方案

MyEclipse中报的错误:
  • zhu7478848
  • zhu7478848
  • 2014年08月20日 22:27
  • 10940

JAVA war包部署到tomcat,jar包冲突问题的解决办法,以及原理剖析。

1.问题描述 如果我们的java工程需要引入javax.servlet,jsp-api 等jar包。将工程编译为war包后,部署到tomcat服务器上当访问这些包相关类时就会报错,错误提示如下。原因就...
  • tensorzhl
  • tensorzhl
  • 2016年10月22日 16:38
  • 2064

项目在eclipse运行正常,但单独部署到tomcat上不正常

林正英捉鬼
  • zhenwen1994
  • zhenwen1994
  • 2016年05月26日 15:15
  • 2985

关于tomcat7无法登陆manager问题解决办法

  • 2013年11月10日 11:57
  • 2KB
  • 下载

项目不能部署到tomcat解决办法

  • 2015年11月18日 21:45
  • 2KB
  • 下载

Navicat Premium 连接orcle 数据库以及问题解决办法和文件包

  • 2017年12月28日 16:04
  • 64.42MB
  • 下载

SQL Server附加数据库失败,错误5120问题解决办法

1、错误3415问题:附加数据库的时候,发现总是附加失败,查看消息时发现问题如下: 查看消息后发现错误代码为3415 原因:数据库文件是只读的 解决方法:在文件属性中去掉只读属性2、错误51...
  • xiaoshaohui1234
  • xiaoshaohui1234
  • 2017年05月30日 16:03
  • 754

win7/win8 64位系统注册TeeChart8.ocx 控件---以及dllregisterserver调用失败问题解决办法

TeeChart控件就不多介绍了,很多朋友不知道开始怎么注册使用,尤其是在64位系统下如何注册的问题,具体如下: win7、win8  64位系统问题所在: 64位的系统一般都是可以安装32位程序...
  • Geek___
  • Geek___
  • 2015年04月05日 13:29
  • 6043

检索 COM 类工厂中 CLSID 为 {96749377-3391-11D2-9EE3-00C04F797396} 的组件失败,没有注册类问题分析和解决办法

  • 2016年07月20日 15:05
  • 3.37MB
  • 下载

mysql创建函数失败问题解决办法

在程序开发过程中,大家有没有遇到过mysql函数不能创建,我是遇到过,是一个很麻烦的问题,上网搜了些相关资料,整理在一起了,供大家参考,帮助那些需要帮助的朋友 在使用MySQL数据库时,有时会遇到M...
  • xiaozhu0301
  • xiaozhu0301
  • 2015年10月28日 14:30
  • 305
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:项目只用struts但tomcat公用完整SSHjar包后部署失败问题解决办法
举报原因:
原因补充:

(最多只允许输入30个字)