Rest 404邮递员错误-弹簧休息

Rest 404邮递员错误-弹簧休息,rest,spring-mvc,postman,spring-web,Rest,Spring Mvc,Postman,Spring Web,在Postman中测试REST Spring Web服务时,我遇到了404错误 有人能提出解决方案吗 我的代码: src/main/resources/spring/application-config.xml ------------------------------------------------------------------------------------------------------------------------------------------- <

在Postman中测试REST Spring Web服务时,我遇到了404错误

有人能提出解决方案吗

我的代码:

src/main/resources/spring/application-config.xml
-------------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>

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

    <!-- Uncomment and add your base-package here:
         <context:component-scan
            base-package="org.springframework.samples.service"/>  -->

</beans>

-------------------------------------------------------------------------------------------------------------------------------------------

src/main/resources/logback.xml

-------------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!-- configuration file for LogBack (slf4J implementation)
See here for more details: http://gordondickens.com/wordpress/2013/03/27/sawing-through-the-java-loggers/ -->
<configuration scan="true" scanPeriod="30 seconds">

    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
        <resetJUL>true</resetJUL>
    </contextListener>

    <!-- To enable JMX Management -->
    <jmxConfigurator/>

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%-5level %logger{0} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--<logger name="org.hibernate" level="debug"/> -->
   <!-- Uncomment and add your logger here:
    <logger name="org.springframework.samples.service.service" level="debug"/> -->

    <root level="info">
        <appender-ref ref="console"/>
    </root>
</configuration>

---------------------------------------------------------------------------------------------------------------------------------------------
src/main/webapp/WEB-INF/mvc-config.xml
---------------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>

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

    <!-- Uncomment and your base-package here:
         <context:component-scan
            base-package="org.springframework.samples.web"/>  -->


    <mvc:annotation-driven />

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <!-- Example: a logical view name of 'showMessage' is mapped to '/WEB-INF/jsp/showMessage.jsp' -->
            <property name="prefix" value="/WEB-INF/view/"/>
            <property name="suffix" value=".jsp"/>
    </bean>

</beans>
---------------------------------------------------------------------------------------------------------------------------------------------
src/main/webapp/WEB-INF/web.xml
---------------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<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_2_5.xsd"
         id="WebApp_ID" version="2.5">

    <display-name>ManageUserRoles</display-name>

   <!--
        - Location of the XML file that defines the root application context.
        - Applied by ContextLoaderListener.
    -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/application-config.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>


    <!--
        - Servlet that dispatches request to registered handlers (Controller implementations).
    -->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/mvc-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>
//////////////////////////////pom.xml//////////////////////////////////

package com.controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.model.Role;

@Controller
public class RoleController {

    private static final Logger logger = LoggerFactory.getLogger(RoleController.class);

    Map<String, Role> roleData = new HashMap<String, Role>();

    @RequestMapping(value = "/role/{role_name}", method = RequestMethod.GET,headers="Accept=application/json")
    public @ResponseBody Role findRole(@PathVariable("role_name") String role_name)
    {
        logger.info("Get a single role with name="+role_name);
        return roleData.get(role_name);
    }

    @RequestMapping(value = "/roles", method = RequestMethod.GET)  
    public @ResponseBody List<Role> getAllRoles()
    {
        logger.info("Start getAllRoles.");
        List<Role> list_roles = new ArrayList<Role>();
        list_roles = createRoleList();
        return list_roles;

    }

    public List<Role> createRoleList()
    {
        Role role1 = new Role("NP Sherm Test", "NP Test", "Active");
        Role role2 = new Role("Sherm Employee Test", "Employee access test role", "Active");
        Role role3 = new Role("Sherm Manager Test", "Manager test user role", "Active");

        List<Role> list_roles = new ArrayList<Role>();
        list_roles.add(role1);
        list_roles.add(role2);
        list_roles.add(role3);

        return list_roles;

    }
    @RequestMapping(value="/roles/new/",method=RequestMethod.POST,headers="Accept=application/json")
    public @ResponseBody Role addRole(@RequestBody Role role)
    {
        logger.info("Start Add Role");
        Role roleGet = roleData.put(role.getRole_name(), role);
        return roleGet;
    }
    @RequestMapping(value="/roles/new/",method=RequestMethod.PUT,headers="Accept=application/json")
    public @ResponseBody Role editRole(@RequestBody Role role)
    {
      Role role_update = new Role();
      role.setRole_name(role.getRole_name());
      role.setRole_desc(role.getRole_desc());
      role.setRole_status(role.getRole_status());
      return role_update;
    }

}
package com.model;

public class Role {

    private String role_name;
    private String role_desc;
    private String role_status;

    public Role(){}



    public Role(String role_name, String role_desc, String role_status) {
        super();
        this.role_name = role_name;
        this.role_desc = role_desc;
        this.role_status = role_status;
    }



    public String getRole_name() {
        return role_name;
    }
    public void setRole_name(String role_name) {
        this.role_name = role_name;
    }
    public String getRole_desc() {
        return role_desc;
    }
    public void setRole_desc(String role_desc) {
        this.role_desc = role_desc;
    }
    public String getRole_status() {
        return role_status;
    }
    public void setRole_status(String role_status) {
        this.role_status = role_status;
    }


}
<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>org.springframework.samples.service.service</groupId>
  <artifactId>ManageUserRoles</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

    <properties>

        <!-- Generic properties -->
        <java.version>1.6</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <!-- Web -->
        <jsp.version>2.2</jsp.version>
        <jstl.version>1.2</jstl.version>
        <servlet.version>2.5</servlet.version>


        <!-- Spring -->
        <spring-framework.version>3.2.3.RELEASE</spring-framework.version>

        <!-- Hibernate / JPA -->
        <hibernate.version>4.2.1.Final</hibernate.version>

        <!-- Logging -->
        <logback.version>1.0.13</logback.version>
        <slf4j.version>1.7.5</slf4j.version>

        <!-- Test -->
        <junit.version>4.11</junit.version>

    </properties>

    <dependencies>

        <!-- Spring MVC -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring-framework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring-framework.version}</version>
        </dependency>

        <!-- Other Web dependencies -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>${jstl.version}</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>${servlet.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>${jsp.version}</version>
            <scope>provided</scope>
        </dependency>

        <!-- Spring and Transactions -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring-framework.version}</version>
        </dependency>

        <!-- Logging with SLF4J & LogBack -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
            <scope>runtime</scope>
        </dependency>

        <!-- Hibernate -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>${hibernate.version}</version>
        </dependency>


        <!-- Test Artifacts -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring-framework.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>

    </dependencies> 
</project>

4.0.0
org.springframework.samples.service.service
ManageUserRoles
0.0.1-快照
战争
1.6
UTF-8
UTF-8
2.2
1.2
2.5
3.2.3.1发布
4.2.1.最终版本
1.0.13
1.7.5
4.11
org.springframework
弹簧网
${spring framework.version}
org.springframework
SpringWebMVC
${spring framework.version}
javax.servlet
jstl
${jstl.version}
javax.servlet
servlet api
${servlet.version}
假如
javax.servlet.jsp
jsp api
${jsp.version}
假如
org.springframework
德克萨斯州春季
${spring framework.version}
org.slf4j
slf4j api
${slf4j.version}
编译
回写
回归经典
${logback.version}
运行时
org.hibernate
休眠实体管理器
${hibernate.version}
org.springframework
弹簧试验
${spring framework.version}
测试
朱尼特
朱尼特
${junit.version}
测试

由于您没有任何特定的应用程序上下文,因此当前URL映射存在问题,即URI
ManageUserRoles
未映射到控制器,因此请按以下方式更改代码:

@Controller("ManageUserRoles")
public class RoleController {

// Add all you existing handler methods

}
更新1后:

此外,您的组件扫描在mvc-config.xml中不正确,因为无法检测到哪个控制器:


base package=“org.springframework.samples.web”
将其更改为
base package=“com.controller”
由于您没有任何特定的应用程序上下文,问题在于当前的URL映射,即URI
ManageUserRoles
没有映射到控制器,因此请按如下方式更改代码:

@Controller("ManageUserRoles")
public class RoleController {

// Add all you existing handler methods

}
更新1后:

此外,您的组件扫描在mvc-config.xml中不正确,因为无法检测到哪个控制器:


base package=“org.springframework.samples.web”
将其更改为
base package=“com.controller”

您正在使用的which url?我正在使用Tomcat 7.0部署的应用程序上下文(webapps文件夹中的project war文件夹名称)名称是什么?我在哪里查找它??我的代码中是否有任何错误??您使用的是which url?我使用的是Tomcat 7.0部署的应用程序上下文(webapps文件夹中的project war文件夹名称)名称是什么?我在哪里查找它??我的代码中是否有错误?我已将项目更改为xml配置。我已经更新了我的代码。重新启动服务器并检查类文件是否是最新的,并确保在postman中使用的是Get。请告诉我最近更改的xml配置中是否有任何错误是的,将base package=“org.springframework.samples.web”更改为base package=“com.controller”已更改。其他xml文件中的任何其他更改??我已将项目更改为xml配置。我已经更新了我的代码。重新启动服务器并检查类文件是否是最新的,并确保在postman中使用的是Get。请告诉我最近更改的xml配置中是否有任何错误是的,将base package=“org.springframework.samples.web”更改为base package=“com.controller”已更改。其他xml文件中的任何其他更改??