Pemetaan permintaan Spring MVC tidak ditemukan Halaman 404 tidak ditemukan

Saya sedang mengembangkan contoh aplikasi Spring MVC. Saya ingin mengembalikan string JSON dengan meminta ke pengontrol spring mvc tetapi ketika saya membuat permintaan melalui url, itu menunjukkan kesalahan 404. Saya mengikuti tutorial dari situs web yang sangat terkenal, URL saya yang saya minta adalah localhost:8080/SpringAngularProject/rest/kfc/brands/kfc1 ini kode saya di bawah ini:

0-- Console Picture : 
Aug 12, 2014 7:31:19 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/SpringAngularProject/rest/kfc/brands/sdsd] in DispatcherServlet with name 'mvc-dispatcher'

1- Ini Kelas Pengendali saya

package com.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/kfc/brands")
public class HelloWorldController {

    @RequestMapping(value = "{name}", method = RequestMethod.GET)
    public @ResponseBody Shop getShopInJSON(@PathVariable String name) {

        Shop shop = new Shop();
        shop.setName(name);
        shop.setStaffName(new String[] { "staff1", "staff2" });
        return shop;

    }
}

2-- File web.xml saya

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>AngularSpring</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/rest</url-pattern>

  </servlet-mapping>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener </listener-class>
  </listener>
</web-app>

3-- File cfg Musim Semi saya :

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans     
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
    <context:component-scan base-package="com.controller.HelloWorldController" />
        <mvc:annotation-driven /> 

</beans>

4-- File pom.xml saya untuk maven

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>SpringAngularProject</groupId>
    <artifactId>SpringAngularProject</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <warSourceDirectory>WebContent</warSourceDirectory>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <properties>
        <spring.version>3.2.2.RELEASE</spring.version>
        <jackson.version>1.9.10</jackson.version>
        <jdk.version>1.7</jdk.version>
    </properties>

    <dependencies>

        <!-- Spring 3 dependencies -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.12</version>
        </dependency>




    </dependencies>
</project>

person Junaid Akhtar    schedule 12.08.2014    source sumber
comment
@RequestMapping(value = "/kfc/brands/{name}" atas keinginan metode Anda   -  person AlexGreg    schedule 12.08.2014
comment
@AlexGreg juga tidak berfungsi   -  person Junaid Akhtar    schedule 12.08.2014
comment
Coba ubah <url-pattern>/rest</url-pattern> menjadi <url-pattern>/rest/*</url-pattern> dan beri tahu saya   -  person geoand    schedule 12.08.2014
comment
Tidak ada masalah yang sama :( @geoand   -  person Junaid Akhtar    schedule 12.08.2014
comment
Sudahkah Anda menerapkan aplikasi Anda dalam konteks SpringAngularProject?   -  person geoand    schedule 12.08.2014
comment
ya nama proyek saya adalah SpringAngularProject @geoand   -  person Junaid Akhtar    schedule 12.08.2014
comment
@geoand setelah mengubah ke rest/* console beri saya kesalahan ini: PERINGATAN: Tidak ditemukan pemetaan untuk permintaan HTTP dengan URI [/SpringAngularProject/rest/kfc/brands/sdsd] di DispatcherServlet dengan nama 'mvc-dispatcher'   -  person Junaid Akhtar    schedule 12.08.2014
comment
Bisakah Anda memperbarui pertanyaan Anda dengan keluaran log dalam mode debug saat permintaan dibuat?   -  person geoand    schedule 12.08.2014
comment
Bisakah Anda mencoba localhost:8080/rest/kfc/brands/sdsd? Terima kasih   -  person geoand    schedule 12.08.2014
comment
Masih tidak berfungsi @geoand   -  person Junaid Akhtar    schedule 12.08.2014
comment
Apakah Anda mencoba URL yang saya sarankan bersama dengan pemetaan /rest/*?   -  person geoand    schedule 12.08.2014
comment
@geoand ya saya lelah, beri saya kesalahan ini 12 Agustus 2014 19:31:19 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound PERINGATAN: Tidak ditemukan pemetaan untuk permintaan HTTP dengan URI [/SpringAngularProject/rest/kfc/brands /sdsd] di DispatcherServlet dengan nama 'mvc-dispatcher'   -  person Junaid Akhtar    schedule 12.08.2014
comment
Pesan tersebut menyarankan Anda telah menambahkan SpringAngularProject ke URL. Apakah Anda yakin Anda mengujinya tanpa itu?   -  person geoand    schedule 12.08.2014
comment
ya saya sudah lelah berkali-kali masih tidak berhasil :( @geoand   -  person Junaid Akhtar    schedule 12.08.2014
comment
Jika Anda melihat log, Spring akan memberi tahu Anda URL apa yang dipetakan. Silakan lihat dulu di sana. Jika tidak dicatat, pengontrol Anda tidak diambil oleh pemindaian komponen.   -  person Bart    schedule 12.08.2014
comment
Tidak ada url di log apa yang harus dilakukan sekarang   -  person Junaid Akhtar    schedule 12.08.2014


Jawaban (1)


Akhirnya saya mendapatkan jawaban saya sendiri, melainkan <context:component-scan base-package="com.controller.HelloWorldController" /> saya berubah menjadi <context:component-scan base-package="com.controller" /> kita hanya perlu memberikan jalur hingga paket Base seperti yang disarankan namanya

person Junaid Akhtar    schedule 12.08.2014