閱讀752 返回首頁    go 阿裏雲 go 技術社區[雲棲]


解決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 將打印一次當前的配置信息。

最後更新:2017-04-04 07:03:36

  上一篇:go 【橋接模式】【辣椒、不辣 牛肉、豬肉 麵 組合】
  下一篇:go 華為與騰訊offer之間的選擇