2016-07-28 15 views
0

Ich habe versucht alle Wege im Internet vor allem in stackoverflow aber nicht die genaue Lösung meiner Anwendung Problem gefunden.Spring 4.x und Hibernate 4.x grundlegende CRUD-Anwendung bekommen Warnung Keine Zuordnung gefunden für HTTP-Anfrage mit URI

Bitte markieren Sie diese nicht als Duplikat weil Warnung das Duplikat sein könnte, aber Version oder etwas anderes verursacht, die nicht hier also die gleichen Antworten wird dupliziert werden für mich, den ich immer

Warnung nicht funktioniert:

WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI in DispatcherServlet with name 'appServlet' 

-Code meiner Anwendung:

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" 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_2_5.xsd"> 

    <!-- The definition of the Root Spring Container shared by all Servlets and Filters --> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/root-context.xml</param-value> 
    </context-param> 

    <!-- Creates the Spring Container shared by all Servlets and Filters --> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <!-- Processes application requests --> 
    <servlet> 
     <servlet-name>appServlet</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>appServlet</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 
</web-app> 

Servlet-context.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:mvc="http://www.springframework.org/schema/mvc" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:tx="http://www.springframework.org/schema/tx" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
http://www.springframework.org/schema/mvc 
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-4.0.xsd 
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"> 

<!-- DispatcherServlet Context: defines this servlet's request-processing 
    infrastructure --> 

<!-- Enables the Spring MVC @Controller programming model --> 
<!-- <annotation-driven /> --> 
<!-- <context:annotation-config/> --> 
<mvc:annotation-driven /> 

<!-- Handles HTTP GET requests for /resources/** by efficiently serving 
    up static resources in the ${webappRoot}/resources directory --> 
<!-- <resources mapping="/resources/**" location="/resources/" /> --> 

<!-- Resolves views selected for rendering by @Controllers to .jsp resources 
    in the /WEB-INF/views directory --> 
<bean 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/views/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
    destroy-method="close"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="url" 
     value="jdbc:mysql://localhost:3306/TestDB" /> 
    <property name="username" value="root" /> 
    <property name="password" value="root" /> 
</bean> 

<!-- Hibernate 4 SessionFactory Bean definition --> 
<bean id="hibernate4AnnotatedSessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="annotatedClasses"> 
     <list> 
      <value>com.mahender.web.model.Person</value> 
     </list> 
    </property> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect 
      </prop> 
      <prop key="hibernate.show_sql">true</prop> 
     </props> 
    </property> 
</bean> 

<bean id="personDAO" class="com.mahender.web.DAO.PersonDAOImpl"> 
    <property name="sessionFactory" ref="hibernate4AnnotatedSessionFactory" /> 
</bean> 
<bean id="personService" class="com.mahender.web.service.PersonServiceImpl"> 
    <property name="personDAO" ref="personDAO"></property> 
</bean> 
<context:component-scan base-package="com.mahender.web" /> 

<tx:annotation-driven transaction-manager="transactionManager"/> 

<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="hibernate4AnnotatedSessionFactory" /> 
</bean> 

Snippet meinen Controller (nicht der gesamte Code zur Verfügung gestellt ich denke, das ist genug, um das Problem zu finden)

@RequestMapping(value = "/app") 
@Controller 
public class PersonController { 

    private PersonService personService; 

    @Autowired(required=true) 
    @Qualifier(value="personService") 
    public void setPersonService(PersonService ps){ 
     this.personService = ps; 
    } 

    @RequestMapping(value = "/persons", method = RequestMethod.GET) 
    public String listPersons(Model model) { 
     model.addAttribute("person", new Person()); 
     model.addAttribute("listPersons", this.personService.listPersons()); 
     return "person"; 
    } 

und Das Jsp-Codeschnipsel ist: person.jsp

<c:url var="addAction" value="/person/add" ></c:url> 

<form:form action="${addAction}" commandName="person"> 
+0

ich denke, Sie brauche '/ app/person/add'? Wo wird '/ person/add' abgebildet? – Apostolos

+0

@Apostolos das ist, wenn ich auf "Senden" Schaltfläche Aktion, aber hier klicken, wenn ich Anwendung ausführen, dh Ausführen als -> Ausführen auf Server diese Warnung kommt in Protokollen und in Web 404 Fehler –

Antwort

0

Sie müssen dies auf Ihrem Code hinzufügen.

model.setViewName ("person");

model.addAttribute ("Person", neue Person());

und auch sicherstellen, dass Ihre .jsp Datei ist innen/Ansichten Ordner

0

Ihre angeforderte Aktion nicht richtig in Controller Versuch abgebildet wird geändert, um es zu app/Person/hinzufügen

+0

Hier erste Anwendung muss nach dem/Person/laden add kann geklickt werden ich hoffe du verstehst wie es funktionieren soll –