解决tomcat引入spring容器出错

错误1:

log4j:WARN Please initialize the log4j system properly.
2013-1-15 20:22:28 org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter struts2
Class: com.opensymphony.xwork2.spring.SpringObjectFactory
File: SpringObjectFactory.java
Method: getClassInstance
Line: 220 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:428)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4584)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5262)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5257)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:220)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyResultType(XmlConfigurationProvider.java:530)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addResultTypes(XmlConfigurationProvider.java:501)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:457)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:275)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:204)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:415)
... 14 more
2013-1-15 20:22:28 org.apache.catalina.core.StandardContext startInternal
严重: Error filterStart

解决方案:

1).在项目的web.xml中配置:

<!-- 指定spring配置文件的路径 -->
  <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
  </context-param>
  <!-- 实例化spring容器 -->
  <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

2).在struts.xml中配置:

<struts>
<!-- 与spring集成的常量,让Spring接管struts去创建action对象 -->
<constant name="struts.objectFactory" value="spring" />
</struts>    

错误2:

log4j:WARN Please initialize the log4j system properly.
2013-1-15 20:30:26 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
2013-1-15 20:30:31 java.util.prefs.WindowsPreferences <init>
警告: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
2013-1-15 20:30:31 java.util.prefs.WindowsPreferences WindowsRegOpenKey1
警告: Trying to recreate Windows registry node Software\JavaSoft\Prefs at root 0x80000002.
2013-1-15 20:30:31 java.util.prefs.WindowsPreferences openKey
警告: Could not open windows registry node Software\JavaSoft\Prefs at root 0x80000002. Windows RegOpenKey(...) returned error code 2.
2013-1-15 20:30:31 java.util.prefs.WindowsPreferences WindowsRegOpenKey1
警告: Trying to recreate Windows registry node Software\JavaSoft\Prefs at root 0x80000002.
2013-1-15 20:30:31 java.util.prefs.WindowsPreferences openKey
警告: Could not open windows registry node Software\JavaSoft\Prefs at root 0x80000002. Windows RegOpenKey(...) returned error code 2.
2013-1-15 20:30:31 java.util.prefs.WindowsPreferences WindowsRegOpenKey1
警告: Trying to recreate Windows registry node Software\JavaSoft\Prefs at root 0x80000002.
2013-1-15 20:30:31 java.util.prefs.WindowsPreferences openKey
警告: Could not open windows registry node Software\JavaSoft\Prefs at root 0x80000002. Windows RegOpenKey(...) returned error code 2.
2013-1-15 20:30:31 java.util.prefs.WindowsPreferences WindowsRegOpenKey1
警告: Trying to recreate Windows registry node Software\JavaSoft\Prefs at root 0x80000002.
2013-1-15 20:30:31 java.util.prefs.WindowsPreferences openKey
警告: Could not open windows registry node Software\JavaSoft\Prefs at root 0x80000002. Windows RegOpenKey(...) returned error code 2.

解决方案:

借鉴自百度方法,严重:StandardServer.await:create[8005]: java.net.BindException:Addressalreadyinuse:JVM_Bind 端口被占用了,8005出现这个问题可能有几种情况:

1.其它应用程序占用了该端口,dos命令查看端口:netstat  -an|findstr  "8080"  查看端口号8080和进程号,和 tasklist|findstr "6168"    占用端口占用进程号6168的占用者

2.tomcat自己占用了,而tomcat占用又可以分为两种,

   1):系统中还有tomcat,并启动了;

2):你的IDE(集成开发环境)突然死掉了,但是tomcat其实并没有关,打开“Windows任务管理器”查看“进程”中,是不是有两个javaw.exe,占用资源小的就是tomcat启动的,大的是由eclipse或myeclipse启动的。

关闭两个javaw进程,重新启动tomcat就…………,这个问题其实可以不解决,项目可以跑起来了!

 端口号查看:

Netstat
显示协议统计和当前的 TCP/IP 网络连接。该命令只有在安装了 TCP/IP 协议后才可以使用。
  netstat [-a] [-e] [-n] [-s] [-p protocol] [-r] [interval]
  参数
  -a :显示所有连接和侦听端口。服务器连接通常不显示。
  -e :显示以太网统计。该参数可以与 -s 选项结合使用。
  -n :以数字格式显示地址和端口号(而不是尝试查找名称)。
  -s :显示每个协议的统计。默认情况下,显示 TCP、UDP、ICMP 和 IP 的统计。-p 选项可以用来指定默认的子集。
        -p protocol :显示由 protocol 指定的协议的连接;protocol 可以是 tcp 或 udp。如果与 -s 选项一同使用显示每个协议的统计,protocol 可以是 tcp、udp、icmp 或 ip。
        -r 显示路由表的内容。
interval :重新显示所选的统计,在每次显示之间暂停 interval 秒。按 CTRL+B 停止重新显示统计。如果省略该参数,netstat 将打印一次当前的配置信息。

时间: 2024-10-02 04:40:34

解决tomcat引入spring容器出错的相关文章

spring mvc-springmvc+mybatis tomcat加载时出错,JUNIT测试通过

问题描述 springmvc+mybatis tomcat加载时出错,JUNIT测试通过 springmvc+mybatis tomcat加载时出错,JUNIT测试通过,就是tomcat起不来,请各位大神帮帮忙 十月 25, 2015 6:18:41 下午 org.apache.catalina.core.ApplicationContext log 信息: No Spring WebApplicationInitializer types detected on classpath 十月 25

docker-Docker运行容器出错,请教解决办法

问题描述 Docker运行容器出错,请教解决办法 最近在学习Docker,按照指南成功完成创建镜像,但是执行最后一步:运行容器的时候却出现了标题的错不知道如何解决. 命令是:docker run -t -d -p 80:5004 myapp. 出错的消息是:System.InvalidOperationException: Unable to resolve project 'HelloMvc6' from /ap p/src/HelloMvc6 解决方案 运行SimpleDict例子编译出错,

基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置

经过<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(1) - 数据源与事务管理>和<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(2) - 静态资源.视图和消息器>两篇博文的介绍,我们已经配置好了Spring所需的基本配置.在这边博文中,我们将介绍怎么使用这些配置到实际项目中,并将web.xml文件替换为一个Java类. 我们使用Java代码来配置Spring,目的就是使我们的这些配置能够复用,对于这些配置的复用,我们采用继承和引入来实现

tomcat部署项目时出错!求大神帮忙看看!

问题描述 新人到公司,搭建环境,准备用tomcat部署项目时出错.如下错误!求解决!万分感谢!! 解决方案 解决方案二:工程是动态web工程吗?把工程目录列表贴出来看看解决方案三:如图解决方案四:clean下工程,重新部署试试解决方案五:看看你项目名称左上角的!看看缺哪些jar包,先倒入进去还有你的这个工程,看着像是一个java工程,感觉不像是web工程啊是否是!遮挡住了标识web工程的小球呢解决方案六:这是java的工程...重新部署为DynamicWebProject试试吧解决方案七:1.你

jetty启动时spring老是出错

问题描述 jetty启动时spring老是出错 解决方案 怎么解决这个问题 求解????

SSH——Struts2中引入Spring

一,为什么要使用Spring           1,装配JavaBean                   摒弃老旧的new方式,spring为我们提供了一种机制,使得创建javaBean以及设置javaBean属性的工作可以通过配置文件以及Spring框架本身来完成.这样,当某些地方需要改变时,修改Spring的配置文件即可.这个过程实际上就是Spring框架通过读取相应的配置文件中的内容,并根据这些配置自动装在javaBean对象,设置JavaBean的属性.            2,

当spring 容器初始化完成后执行某个方法

在做web项目开发中,尤其是企业级应用开发的时候,往往会在工程启动的时候做许多的前置检查. 比如检查是否使用了我们组禁止使用的Mysql的group_concat函数,如果使用了项目就不能启动,并指出哪个文件的xml文件使用了这个函数. 而在Spring的web项目中,我们可以介入Spring的启动过程.我们希望在Spring容器将所有的Bean都初始化完成之后,做一些操作,这个时候我们就可以实现一个接口: 1 2 3 4 5 6 7 package com.yk.test.executor.p

Scripting Java #2:使用Spring容器

前面我们已经知道了怎么在Java中执行脚本语言,今天,以Groovy为栗,来看下怎么在脚本里面使用Spring容器. Bindings 最简单的方式,直接将ApplicationContext丢到ScriptEngine的上下文环境,也就是Bindings里面,这样脚本里面就可以直接使用ApplicationContext.getBean来拿到容器里面的bean了. import java.util.Random; public class Foo { private int i; public

Spring容器中Bean的作用域

    当通过Spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域.Spring支持如下5种作用域: singleton:单例模式,在整个Spring IoC容器中,使用singleton定义的Bean将只有一个实例 prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例 request:对于每次HTTP请求,使用request定义的Bean都将产生一个新实例,即每次