错误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:
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.
借鉴自百度方法,严重: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 将打印一次当前的配置信息。