Spring无法获取映射

我正在尝试使用 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>



PIPIONE
浏览 188回答 3
3回答

四季花海

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

潇湘沐

关于您的问题,我认为您需要将 RequestMapping 定义为@Controller@RequestMapping(value = "api")public class UserController {&nbsp; @Autowired&nbsp; private UserService userService;&nbsp; @RequestMapping(value = "/users", method = RequestMethod.GET)&nbsp; public List<User> getUsers() {&nbsp; &nbsp; return userService.listUsers();&nbsp; }}或者@Controller@RequestMapping(value = "api/users")public class UserController {&nbsp; @Autowired&nbsp; private UserService userService;&nbsp; @RequestMapping(method = RequestMethod.GET)&nbsp; public List<User> getUsers() {&nbsp; &nbsp; return userService.listUsers();&nbsp; }}请看看它是否有效。

慕桂英546537

您正在使用 @Controller 批注,但如果您想公开 REST web 服务,则需要使用 @RestController 或 @ResponseBody@RestController@RequestMapping(value = "users")public class UserController
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java