为了账号安全,请及时绑定邮箱和手机立即绑定

Spring无法获取映射

Spring无法获取映射

PIPIONE 2021-06-15 17:00:14
我正在尝试使用 Spring 和 Hibernate 构建 REST API。当我运行服务器时,它没有返回任何错误,但我无法访问我的链接。这是我的配置文件:弹簧文件<mvc:annotation-driven /><context:component-scan base-package="org.bloggy.spring" /><bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">    <property name="dataSource" ref="dataSource" />    <property name="hibernateProperties">        <props>            <prop key="hbm2ddl.auto">create-drop</prop>            <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>            <prop key="show_sql">true</prop>        </props>    </property></bean><bean id="dataSource"    class="org.apache.commons.dbcp.BasicDataSource">    <property name="driverClassName"  value="com.mysql.jdbc.Driver"/>    <property name="url" value="jdbc:mysql://localhost:3306/my_bloggy?createDatabaseIfNotExist=true" />    <property name="username" value="root" />    <property name="password" value="root" /> </bean><bean id="txManager"      class="org.springframework.transaction.jta.JtaTransactionManager" />那是我的 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>
查看完整描述

3 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

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


查看完整回答
反对 回复 2021-06-17
?
潇湘沐

TA贡献1816条经验 获得超6个赞

关于您的问题,我认为您需要将 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();

  }

}

或者


@Controller

@RequestMapping(value = "api/users")

public class UserController {

  @Autowired

  private UserService userService;


  @RequestMapping(method = RequestMethod.GET)

  public List<User> getUsers() {

    return userService.listUsers();

  }

}

请看看它是否有效。


查看完整回答
反对 回复 2021-06-17
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

您正在使用 @Controller 批注,但如果您想公开 REST web 服务,则需要使用 @RestController 或 @ResponseBody


@RestController

@RequestMapping(value = "users")

public class UserController


查看完整回答
反对 回复 2021-06-17
  • 3 回答
  • 0 关注
  • 187 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信