java - 我收到“存在意外错误(类型=未找到,状态=404)”错误?

标签 java spring hibernate spring-mvc spring-boot

我收到错误构建成功时在 mybrowser 中运行时出现意外错误(类型=未找到,状态=404)。
为什么我的应用程序找不到我的 jsp 页面?我应该包含什么才能找到这些内容?

应用程序配置

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.EventToday.event")
public class ApplicationConfig {
    
           @Bean
            public ViewResolver viewResolver() {
                InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
                viewResolver.setViewClass(JstlView.class);
                viewResolver.setPrefix("/WEB-INF/pages/");
                viewResolver.setSuffix(".jsp");
                return viewResolver;
            }
            
            @Bean
            public MessageSource messageSource() {
                ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
                messageSource.setBasename("messages");
                return messageSource;
            }
            
}

#hibernate_configuration
@Configuration
@EnableTransactionManagement
@ComponentScan({ "com.EventToday.event" })
@PropertySource(value = { "classpath:application.properties" })
public class hibernateconfig {

        @Autowired
        private Environment environment;

        @Bean
        public LocalSessionFactoryBean sessionFactory() {
            LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
            sessionFactory.setDataSource(dataSource());
            sessionFactory.setPackagesToScan(new String[] { "com.EventToday.event.model" });
            sessionFactory.setHibernateProperties(hibernateProperties());
            return sessionFactory;
         }
        
        @Bean
        public DataSource dataSource() {
            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName(environment.getRequiredProperty("spring.datasource.driverClassName"));
            dataSource.setUrl(environment.getRequiredProperty("spring.datasource.url"));
            dataSource.setUsername(environment.getRequiredProperty("spring.datasource.username"));
            dataSource.setPassword(environment.getRequiredProperty("spring.datasource.password"));
            return dataSource;
        }
        
        private Properties hibernateProperties() {
            Properties properties = new Properties();
            properties.put("spring.jpa.properties.hibernate.dialect", environment.getRequiredProperty("spring.jpa.properties.hibernate.dialect"));
            properties.put("spring.jpa.show_sql", environment.getRequiredProperty("spring.jpa.show-sql"));
            properties.put("spring.jpa.properties.hibernate.format_sql", environment.getRequiredProperty("spring.jpa.properties.hibernate.format_sql"));
            return properties;        
        }
        
        @Bean
        @Autowired
        public HibernateTransactionManager transactionManager(SessionFactory s) {
           HibernateTransactionManager txManager = new HibernateTransactionManager();
           txManager.setSessionFactory(s);
           return txManager;
        }
        
        
}


#service_controller

@RestController
@RequestMapping("/")
public class eventController {
     
    @Autowired
    private eventsServices eventsservices;
    
    
    @RequestMapping(value="/events",
            method=RequestMethod.GET
            //produces=MediaType.APPLICATION_JSON_VALUE
            )
    public ResponseEntity<Collection<events>> getEvents(){
        Collection<events> evnts = eventsservices.findAll();
         
        return new ResponseEntity<Collection<events>>(evnts,HttpStatus.OK);
        
    }
    
    @RequestMapping(value="/events/{id}",
            method=RequestMethod.GET
            //produces=MediaType.APPLICATION_JSON_VALUE
            )
    public ResponseEntity<events> getEvent(@PathVariable("id") int id){
        events evnts = eventsservices.findById(id);
        if(evnts==null){
            return new ResponseEntity<events>(evnts, HttpStatus.NOT_FOUND);
        }
         
        return new ResponseEntity<events>(evnts,HttpStatus.OK);
        
    }
}

#pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>com.EventToday</groupId>
    <artifactId>EventToday</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>EventToday</name>
    <description>projects for events</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <springframework.version>4.0.6.RELEASE</springframework.version>
        <hibernate.version>4.3.6.Final</hibernate.version>
        <mysql.version>5.1.31</mysql.version>
        <joda-time.version>2.3</joda-time.version>
        <testng.version>6.9.4</testng.version>
        <mockito.version>1.10.19</mockito.version>
        <h2.version>1.4.187</h2.version>
        <dbunit.version>2.2</dbunit.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency> 
        <!-- <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency> -->
        <!-- Hibernate -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>${hibernate.version}</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            </dependency>

        <!-- jsr303 validation -->
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
        </dependency>
        
        <!-- MySQL -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
            <version>1.5.2</version>
        </dependency>
        
        <!-- < Servlet+JSP+JSTL >
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.1</version>
        </dependency-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

#/WEB-INF/pages/ in in src/java/webapp/

what i'm missing here?

最佳答案

您需要将 @ResponseBody 放在您的休息方法上。

这个标签告诉 Spring 返回对象是响应的内容。

关于java - 我收到“存在意外错误(类型=未找到,状态=404)”错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39689079/

相关文章:

JavaFX:设置菜单项中图形节点和文本之间的间隙

java - 将包含 textview 值的文件 .txt (ArrayList) 中的所有项目设置为 ListView [Android Java]

java - 在服务类中调用时服务类不更新数据库

hibernate - 已关联具有相同标识符值的不同对象

java - 正确测试 Spring 服务

java - 无法弄清楚如何将结果输出到 JLabel 而不是 System.out.println

java - 如何打开导入

java - JSTL 变量未显示

java - 无法在spring的应用程序上下文中加载多个属性文件

java - 使用 JPA 时构建器模式的最佳实践和实现