2012-11-23 49 views
1

我有與Eclipse的赫利俄斯Glassfish的404錯誤Spring項目

我一直在使用添加和通過右鍵單擊服務器中刪除添加我的樣本Spring項目服務器集成Glassfish3服務器。

當我運行http://localhost:8080/SpringHibernateJSFTest/insertJdbcContact.do

我越來越description The requested resource() is not available.

我怎樣才能解決這個問題?我究竟做錯了什麼?

任何幫助,高度讚賞。

controller class

@Controller 
public class JBTJdbcController { 
    @Autowired 
    com.service.SpringJdbcService mfssService; 
    @RequestMapping(value = "/insertJdbcContact", method = RequestMethod.GET) 
    public ModelAndView insertMemDtls() { 
     ModelAndView mav = new ModelAndView("JdbcInsert"); 
     VngMem mfssbean = new VngMem(); 
     mav.addObject("insertUser", mfssbean); 
     mav.addObject("status", "success"); 
     return mav; 
    } 
    @RequestMapping(value = "/insertJdbcContact", method = RequestMethod.POST) 
    public ModelAndView insertContact(
      @ModelAttribute("insertUser") VngMem vngmem) { 
     ModelAndView mav = new ModelAndView("JdbcInsert"); 
     try { 
      mfssService.insertMfssMemDts(vngmem); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     mav.addObject("searchResultPost", vngmem); 
     return mav; 
    } 
} 

這裏是的web.xml

<display-name>SpringHibernateJSFTest</display-name> 
    <display-name>SpringMVC</display-name> 
    <welcome-file-list> 
     <welcome-file>welcome.do</welcome-file> 
    </welcome-file-list> 
    <servlet> 
     <servlet-name>dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>*.do</url-pattern> 
    </servlet-mapping> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>classpath:applicationContext.xml</param-value> 
    </context-param> 
</web-app> 

的applicationContext.xml

<context:annotation-config /> 
<context:component-scan base-package="com.controller,com.beans" /> 
<mvc:annotation-driven /> 
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
     <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> 
     <property name="url" value="jdbc:oracle:thin:@server:1521:orcl"/> 
     <property name="username" value="scott"/> 
     <property name="password" value="tiger"/> 

    </bean> 
<bean id="SpringJdbcDao" class="com.dao.SpringJdbcDaoImpl"> 
    <property name="dataSource" ref="dataSource"/> 
</bean> 
    <bean id="SpringJdbcService" class="com.service.SpringJdbcServiceImpl"> 
    <property name="springJdbcDao" ref="SpringJdbcDao"/> 
</bean> 
</beans> 

調度業務模型let.xml

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
       <property name="prefix" value="/WEB-INF/jsp/"/> 
     <property name="suffix" value=".jsp"/> 
    </bean> 
</beans> 

JdbcInsert.jsp/WebContent/WEB-INF

更新1

cannot Deploy SpringHibernateJSFTest 
Deployment Error for module: SpringHibernateJSFTest: Exception while loading the app : 
java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: 
org.springframework.beans.factory.BeanDefinitionStoreException: 
IOException parsing XML document from class path resource [applicationContext.xml]; 
nested exception is java.io.FileNotFoundException: class path resource 
[applicationContext.xml] cannot be opened because it does not exist 
+0

你的控制器類返回什麼? –

+0

@SazzadurRahaman我用控制器類更新了我的問題。 – user75ponic

+0

是的,我看到它,它看起來很好。我認爲問題是你的解析器ID,你試過我回答的東西嗎? –

回答

1

您應該移動:

<context:component-scan base-package="com.controller,com.beans" /> 
    <mvc:annotation-driven /> 

dispatcher-servlet.xml.

In your dispacher-servlet.xml您InternalResourceViewResolver這個bean的id應該是internalResourceViewResolver,像波紋管:

 <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> 

而且你的JSP文件應在/ WEB-INF/JSP/目錄。

感謝和快樂的編碼!

+0

你的意思是id'viewResolver'?我試着用id和jsp一樣,但是沒有解決這個錯誤。正確如果我在這裏錯過了一些愚蠢的東西。 – user75ponic

+0

我爲你編輯了我的答案。 –

+0

@Polppan你還有問題嗎? –

1

ViewResolver使用/WEB-INF/jsp/前綴,而JdbcInsert.jsp位於/WEB-INF,你應該糾正前綴爲你已經在根Application Context instead of the Dispatcher Servlet Context宣佈<mvc:annotation-driven />"/WEB-INF/"

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
       <property name="prefix" value="/WEB-INF/"/> 
     <property name="suffix" value=".jsp"/> 
    </bean> 

更新,這可能會導致一些問題,示例viewResolver將從根應用程序上下文中有效地不可見。

您的mvc配置應駐留在調度程序servlet上下文中。

+0

我已經從'/ WEB-INF/jsp /'更改爲v/WEB-INF /',但是當我嘗試'http:// localhost:8080/SpringHibernateJSFTest/insertJdbcContact.do'時,出現同樣的錯誤 – user75ponic