JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java Application Framework » Spring  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 spring2.0的配置問題請教
poshoung





發文: 51
積分: 0
於 2008-11-03 15:03 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
各位好
最近我在玩struts2.0+spring2.0
struts的環境已經建立並且跑過一個簡單的helloWorld.jsp成功
之後加入spring2的jar後出現下述的Exception
1
2
3
4
5
6
14:55:43,093 INFO  [XmlWebApplicationContext] Refreshing org.springframework.web.context.support.XmlWebApplicationContext@1157f77: display name [Root WebApplicationContext]; startup date [Mon Nov 03 14:55:43 CST 2008]; root of context hierarchy
14:55:43,187 INFO  [XmlBeanDefinitionReader] Loading XML bean definitions from ServletContext resource [/WEB-INF/classes/applicationContext.xml]
14:55:43,203 ERROR [ContextLoader] Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/classes/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/classes/applicationContext.xml]
  at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:349)
 


以下是我的認知- struts2與spring2我還不熟,如有錯誤請指教
我在web.xml已經設定好listener是org.springframework.web.context.ContextLoaderListener
並且設定對應的applicatiionContext.xml
內容是我原本struts的action bean
所以spring會根據我在applicatiionContext.xml的設定把這個bean準備好
然後我原本struts.xml設定的action class就改為spring設定的bean id
由spring提供這個action物件的實體

但是這些都設定好了後跑出上面這個錯誤
我不懂的是
1.fileNotFoundException 可是我的檔案明明在?
2.看起來他跟我要求在applicationContext.xml裡面要找到某種ServletContext.xml的設定
可是我翻過很多介紹都沒有說需要設定這個東西?這是甚麼用途呢?

先謝謝大家的指教

下面附上我的設定檔
WEB-INF\web.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <display-name>
  shou</display-name>
  <filter>
        <filter-name>struts2</filter-name>        
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/classes/applicationContext.xml</param-value>  
    </context-param>

    <listener> 
       <listener-class> 
           org.springframework.web.context.ContextLoaderListener
       </listener-class> 
    </listener> 
    
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>


WEB-INF\classes\applicationContext.xml
1
2
3
4
5
6
<?xml version="1.0" encoding="UTF-8" ?> 
<beans xmlns ="http://www.springframework.org/schema/beans" 
    xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd" > 
    <bean id ="HelloWorld" class ="tutorial.HelloWorld" /> 
</beans> 


WEB-INF\classes\struts.xml
1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />
    <include file="struts-default.xml"/>
    <package name="tutorial" extends="struts-default">
        <action name="HelloWorld" class="HelloWorld">
            <result>HelloWorld.jsp</result>
        </action>
    </package>
</struts>


reply to postreply to post
作者 Re:spring2.0的配置問題請教 [Re:poshoung]
poshoung





發文: 51
積分: 0
於 2008-11-03 21:46 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
已解決
自問自答~
我犯了兩個錯
第一個錯是我沒有去設定eclipse專案java build path的default output folder
以至於他預設是丟到bulid/classes
所以WEB-INF/classes找不到檔案
不過這一個錯誤又引發我一個疑問
那為何測試struts時我發布struts.xml到bulid/classes也能跑?
@@
希望知道的前輩能指教

第二個錯是一個空格
web.xml裡面指定context-param時檔案名稱多一個空格

兩個錯誤交纏在一起一直引發fileNotFoundException


reply to postreply to post
作者 Re:spring2.0的配置問題請教 [Re:poshoung]
koji

秒速5センチメートル

站長

發文: 8415
積分: 19
於 2008-11-03 21:50 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
照理上他丟到build/classes
在deploy時會丟到WEB-INF/classes

所以不會有問題才是

主要問題應該是你的第二個錯誤

koji


reply to postreply to post
JCConf Taiwan 2015 開始售票了!!
Facebook上的TWJUG社團,歡迎加入
作者 Re:spring2.0的配置問題請教 [Re:poshoung]
poshoung





發文: 51
積分: 0
於 2008-11-04 15:20 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
謝謝koji的指教
早上做了幾個交叉測試
的確放在build/classes也行
Orz

基本上struts2+spring2環境設定與一個簡單的例子大致上走過一次了
整理一份備忘錄如果有想要做相同事情的網友可以參考看看
這是在google上到處survey的一點心得
我也還在摸索中
如果有錯誤也請不吝指教
Smile

doc.rar (478.46k)


reply to postreply to post
» JWorld@TW »  Java Application Framework » Spring

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8