2012-11-23 50 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