2013-04-04 64 views
1

我是Spring框架的新手,希望能對您遇到的問題有所指導。我正在開發基於Spring框架的Web服務,我已經在本地wrkspace上單獨開發了這個框架,現在我正在嘗試將它與現有的基本上使用舊的jsps而沒有特定框架的Web應用程序集成。我的應用程序託管在Tomcat和原來的web.xml是:將彈簧服務與舊的jsp Web應用程序集成在一起

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> 

<web-app> 
<display-name>BOBCAT</display-name> 
<description> 
BOBCAT 
</description> 

<servlet> 
    <servlet-name>DFPServlet</servlet-name> 
    <servlet-class>uk.co.blackwell.dfp.DFPServlet</servlet-class> 
    <init-param> 
    <param-name>properties</param-name> 
    <param-value>/opt/bobcat/dev2/apprunner/webapps/bobcat/WEB-INF/classes/uk/co/blackwell/dfp/dfpprops.xml</param-value> 
    </init-param> 
</servlet> 

<servlet-mapping> 
    <servlet-name>DFPServlet</servlet-name> 
    <url-pattern>*.dfp</url-pattern> 
</servlet-mapping> 

<!-- Cannot redirect to static apache-served pages --> 
<!-- File not found (404), unauthorized/forbidden (403, 401) --> 
<error-page> 
    <error-code>401</error-code> 
    <location>/not_found.jsp</location> 
</error-page> 
<error-page> 
    <error-code>403</error-code> 
    <location>/not_found.jsp</location> 
</error-page> 
<error-page> 
    <error-code>404</error-code> 
    <location>/not_found.jsp</location> 
</error-page> 
</web-app> 

,我想這個古老的一箇中集成新的web.xml是:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/dispatcher-servlet.xml</param-value> 
</context-param> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>2</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 
<session-config> 
    <session-timeout> 
     30 
    </session-timeout> 
</session-config> 
<welcome-file-list> 
    <welcome-file>/</welcome-file> 
</welcome-file-list> 

    <servlet> 
    <servlet-name>restful</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/appServlet/restful-context.xml</param-value>    
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>restful</servlet-name> 
    <url-pattern>/restful/*</url-pattern> 
</servlet-mapping>  
</web-app> 

我想我可能是在定義新的web.xml本身時做了一些非常錯誤的事情,就像我把春天版本的大塊放到舊版本時一樣,它給了我404找不到所有請求的錯誤。我曾嘗試諮詢過很多在線資源,但其中大多數都是從頭開始支持新的Spring應用程序,或者在某些意義上不完整。任何幫助或努力將深受讚賞。

回答

0

嘗試了幾種組合,發現它實際上比想象的更容易。我在這裏沒有使用任何監聽器,因爲當我試圖使用監聽器時,它沒有發現所有請求的404警告。我現在可以脫身,因爲我只需要使用Spring和我的遺留Web應用程序來集成寧靜的Web服務。它現在工作得非常好,無論是在我的本地工作區(Win 7)還是Linux開發箱。

最終的web.xml如下:

<?xml version="1.0" encoding="UTF-8"?> 

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 

<display-name>BOBCAT</display-name> 
<description> 
BOBCAT 
</description> 

<!-- Added on 20/03/2013 by Anshul for Spring --> 
<servlet> 
    <servlet-name>restful</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/appServlet/restful-context.xml</param-value>    
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>restful</servlet-name> 
    <url-pattern>/restful/*</url-pattern> 
</servlet-mapping> 
<!-- End of addition by Anshul --> 


<servlet> 
    <servlet-name>DFPServlet</servlet-name> 
    <servlet-class>uk.co.blackwell.dfp.DFPServlet</servlet-class> 
    <init-param> 
    <param-name>properties</param-name> 
    <param-value>/opt/bobcat/dev2/apprunner/webapps/bobcat/WEB-INF/classes/uk/co/blackwell/dfp/dfpprops.xml</param-value> 
    </init-param> 
</servlet> 

<servlet-mapping> 
    <servlet-name>DFPServlet</servlet-name> 
    <url-pattern>*.dfp</url-pattern> 
</servlet-mapping> 


<!-- Cannot redirect to static apache-served pages --> 
<!-- File not found (404), unauthorized/forbidden (403, 401) --> 
<error-page> 
    <error-code>401</error-code> 
    <location>/not_found.jsp</location> 
</error-page> 
<error-page> 
    <error-code>403</error-code> 
    <location>/not_found.jsp</location> 
</error-page> 
<error-page> 
    <error-code>404</error-code> 
    <location>/not_found.jsp</location> 
</error-page> 

</web-app> 
相關問題