Java 弹簧罐';得不到映射

Java 弹簧罐';得不到映射,java,spring,spring-mvc,Java,Spring,Spring Mvc,我正在尝试用Spring和Hibernate构建RESTAPI 当我运行服务器时,它不会返回任何错误,但我无法访问我的链接 这是我的配置文件: spring.xml 创建下降 org.hibernate.dialogue.mysql5dialogue 真的 这就是我的web.xml: <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</list

我正在尝试用Spring和Hibernate构建RESTAPI

当我运行服务器时,它不会返回任何错误,但我无法访问我的链接

这是我的配置文件:

spring.xml


创建下降
org.hibernate.dialogue.mysql5dialogue
真的
这就是我的web.xml:

<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/resources/spring.xml</param-value>
        <param-value>WEB-INF/resources/dao.xml</param-value>
        <param-value>WEB-INF/resources/service.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>

org.springframework.web.context.ContextLoaderListener
appServlet
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
WEB-INF/resources/spring.xml
WEB-INF/resources/dao.xml
WEB-INF/resources/service.xml
1.
appServlet
/原料药/*
控制器:

@Controller
@RequestMapping(value = "users")
public class UserController {
  @Autowired
  private UserService userService;

  @RequestMapping(value = "/", method = RequestMethod.GET)
  public List<User> getUsers() {
    return userService.listUsers();
  }
}
@控制器
@请求映射(value=“users”)
公共类用户控制器{
@自动连线
私人用户服务;
@RequestMapping(value=“/”,method=RequestMethod.GET)
公共列表getUsers(){
返回userService.listUsers();
}
}

您正在使用@Controller注释,但如果您想公开REST webservice,则需要使用@RestController或@ResponseBody

@RestController
@RequestMapping(value = "users")
public class UserController

您正在使用@Controller注释,但如果您想公开REST webservice,则需要使用@RestController或@ResponseBody

@RestController
@RequestMapping(value = "users")
public class UserController

正如@Ken提到的,为了将API公开为REST AP,您需要使用@RestController,或者如果您想使用@Controller,那么就使用@ResponseBody注释

关于您的问题,我认为您需要将RequestMapping定义为

@Controller
@RequestMapping(value = "api")
public class UserController {
  @Autowired
  private UserService userService;

  @RequestMapping(value = "/users", method = RequestMethod.GET)
  public List<User> getUsers() {
    return userService.listUsers();
  }
}
@控制器
@请求映射(value=“api”)
公共类用户控制器{
@自动连线
私人用户服务;
@RequestMapping(value=“/users”,method=RequestMethod.GET)
公共列表getUsers(){
返回userService.listUsers();
}
}

@控制器
@请求映射(value=“api/用户”)
公共类用户控制器{
@自动连线
私人用户服务;
@RequestMapping(method=RequestMethod.GET)
公共列表getUsers(){
返回userService.listUsers();
}
}

请查看它是否有效。

如@Ken所述,为了将您的API公开为REST AP,您需要使用@RestController,或者如果您想使用@Controller,则使用@ResponseBody注释

关于您的问题,我认为您需要将RequestMapping定义为

@Controller
@RequestMapping(value = "api")
public class UserController {
  @Autowired
  private UserService userService;

  @RequestMapping(value = "/users", method = RequestMethod.GET)
  public List<User> getUsers() {
    return userService.listUsers();
  }
}
@控制器
@请求映射(value=“api”)
公共类用户控制器{
@自动连线
私人用户服务;
@RequestMapping(value=“/users”,method=RequestMethod.GET)
公共列表getUsers(){
返回userService.listUsers();
}
}

@控制器
@请求映射(value=“api/用户”)
公共类用户控制器{
@自动连线
私人用户服务;
@RequestMapping(method=RequestMethod.GET)
公共列表getUsers(){
返回userService.listUsers();
}
}

请查看它是否工作。

在应用程序
MyBloggy
中可见,实际上并不初始化任何SpringBean。tomcat上部署的缓存或war文件有问题。理想情况下,在部署
war
时,除非禁用,否则可以在日志中看到所有初始化的bean。确保在服务器上部署了正确的
war

应用程序中可见的
MyBloggy
实际上并不初始化任何Springbean。tomcat上部署的缓存或war文件有问题。理想情况下,在部署
war
时,除非禁用,否则可以在日志中看到所有初始化的bean。确保在服务器上部署了正确的
war

您试图访问的URL以及您的rest服务中提到的路径是什么我正在尝试访问我正在将控制器添加到问题中它没有区别:/您可以在发出请求后粘贴控制台日志吗?您是否在tomcat或其他服务器中部署此应用程序?如果是,您还应该在url中附加war文件的名称。除非您已经定义了一些映射,否则您尝试访问的URL以及您的rest服务中提到的路径是什么我正在尝试访问我正在将控制器添加到问题中没有区别:/n您可以在发出请求后粘贴控制台日志吗?您是在tomcat或其他服务器中部署此应用程序吗?如果是,您还应该在url中附加war文件的名称。除非您已经为此定义了一些映射