当前位置: 首页 > 知识库问答 >
问题:

spring boot“白标签错误页”无消息可用

微生德运
2023-03-14

我正在尝试将我的spring mvc项目转换成spring boot。我转换了所有必要的文件根据spring引导。没有错误在控制台。但是当我在浏览器中运行我的web应用程序时,我会得到这个错误。错误:“白标签错误页”没有可用的消息请告诉我为什么我得到这个错误和如何解决它?

pageController.java

package net.kzn.onlineshopping.contr 

@Controller
public class PageController {

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

    @Autowired
    private CategoryDAO categoryDAO;

    @Autowired
    private ProductDAO productDAO;

    @RequestMapping(value = { "/", "/home", "/index" })
    public ModelAndView index(@RequestParam(name = "logout", required = false) String logout) {
        ModelAndView mv = new ModelAndView("page");
        mv.addObject("title", "Home");

        logger.info("Inside PageController index method - INFO");
        logger.debug("Inside PageController index method - DEBUG");
  
        // passing the list of categories
        mv.addObject("categories", categoryDAO.list());

        if (logout != null) {
            mv.addObject("message", "You have successfully logged out!");
        }

        mv.addObject("userClickHome", true);
        return mv;
    }

    @RequestMapping(value = "/about")
    public ModelAndView about() {
        ModelAndView mv = new ModelAndView("page");
        mv.addObject("title", "About Us");
        mv.addObject("userClickAbout", true);
        return mv;
    }

    @RequestMapping(value = "/contact")
    public ModelAndView contact() {
        ModelAndView mv = new ModelAndView("page");
        mv.addObject("title", "Contact Us");
        mv.addObject("userClickContact", true);
        return mv;
    }

    /*
     * Methods to load all the products and based on category
     */

    @RequestMapping(value = "/show/all/products")
    public ModelAndView showAllProducts() {
        ModelAndView mv = new ModelAndView("page");
        mv.addObject("title", "All Products");

        // passing the list of categories
        mv.addObject("categories", categoryDAO.list());

        mv.addObject("userClickAllProducts", true);
        return mv;
    }

    @RequestMapping(value = "/show/category/{id}/products")
    public ModelAndView showCategoryProducts(@PathVariable("id") int id) {
        ModelAndView mv = new ModelAndView("page");

        // categoryDAO to fetch a single category
        Category category = null;

        category = categoryDAO.get(id);

        mv.addObject("title", category.getName());

        // passing the list of categories
        mv.addObject("categories", categoryDAO.list());

        // passing the single category object
        mv.addObject("category", category);

        mv.addObject("userClickCategoryProducts", true);
        return mv;
    }

    /*
     * Viewing a single product
     */

    @RequestMapping(value = "/show/{id}/product")
    public ModelAndView showSingleProduct(@PathVariable int id) throws ProductNotFoundException {

        ModelAndView mv = new ModelAndView("page");

        Product product = productDAO.get(id);

        if (product == null)
            throw new ProductNotFoundException();

        // update the view count
        product.setViews(product.getViews() + 1);
        productDAO.update(product);
        // ---------------------------

        mv.addObject("title", product.getName());
        mv.addObject("product", product);

        mv.addObject("userClickShowProduct", true);

        return mv;

    }

    @RequestMapping(value = "/membership")
    public ModelAndView register() {
        ModelAndView mv = new ModelAndView("page");

        logger.info("Page Controller membership called!");

        return mv;
    }

    @RequestMapping(value = "/login")
    public ModelAndView login(@RequestParam(name = "error", required = false) String error,
            @RequestParam(name = "logout", required = false) String logout) {
        ModelAndView mv = new ModelAndView("login");
        mv.addObject("title", "Login");
        if (error != null) {
            mv.addObject("message", "Username and Password is invalid!");
        }
        if (logout != null) {
            mv.addObject("logout", "You have logged out successfully!");
        }
        return mv;
    }

    @RequestMapping(value = "/logout")
    public String logout(HttpServletRequest request, HttpServletResponse response) {
        // Invalidates HTTP Session, then unbinds any objects bound to it.
        // Removes the authentication from securitycontext
        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
        if (auth != null) {
            new SecurityContextLogoutHandler().logout(request, response, auth);
        }

        return "redirect:/login?logout";
    }

    @RequestMapping(value = "/access-denied")
    public ModelAndView accessDenied() {
        ModelAndView mv = new ModelAndView("error");
        mv.addObject("errorTitle", "Aha! Caught You.");
        mv.addObject("errorDescription", "You are not authorized to view this page!");
        mv.addObject("title", "403 Access Denied");
        return mv;
    }

    @RequestMapping(value = "/view/category/{id}/products")
    public ModelAndView viewProducts(@PathVariable("id") int id) {
        ModelAndView mv = new ModelAndView("page");
        // categoryDAO to fetch a single category
        Category category = null;

        category = categoryDAO.get(id);

        mv.addObject("title", category.getName());

        // passing the list of categories
        mv.addObject("viewproducts", productDAO.listActiveProductsByCategory(id));

        mv.addObject("userClickViewProducts", true);
        return mv;
    }

    
    @RequestMapping(value = "/search")
    public ModelAndView Search(@RequestParam(value = "searchTerm", required = false) String pSearchTerm,
            HttpServletRequest request, HttpServletResponse response) {
        ModelAndView mv = new ModelAndView("search");

        mv.addObject("searchTerm", pSearchTerm);
        mv.addObject("searchResult", productDAO.searchProductsByParam(pSearchTerm));

        mv.addObject("userClickSearch", true);

        return mv;
    }

}

onlineShoppingApplication.java

package net.kzn.onlineshopping;

 
@SpringBootApplication
@EnableWebSecurity 
@ComponentScan(basePackages = {"net.kzn.onlineshopping.*","net.kzn.shoppingbackend.*"})
@ImportResource({"classpath:spring-security.xml","classpath:/**/dispatcher-servlet.xml"})
public class OnlineshoppingApplication {

    public static void main(String[] args) {
        SpringApplication.run(OnlineshoppingApplication.class, args);
    }
    
    
}

Dispatcher-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:wf="http://www.springframework.org/schema/webflow-config"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    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
   http://www.springframework.org/schema/mvc
   http://www.springframework.org/schema/mvc/spring-mvc.xsd
   http://www.springframework.org/schema/webflow-config
   http://www.springframework.org/schema/webflow-config/spring-webflow-config.xsd">

    <context:component-scan
        base-package="net.kzn.onlineshopping" />

    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">

        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>

    <!-- id must be multipartResolver -->
    <bean id="multipartResolver"
        class="org.springframework.web.multipart.support.StandardServletMultipartResolver" />

    <!-- Loading static resources -->
    <mvc:annotation-driven />
    <mvc:resources location="/assets/"
        mapping="/resources/**" />

    <!-- WEBFLOW CONFIGURATION -->
    <!-- Entry point for the flow -->

    <wf:flow-executor id="flowExecutor"
        flow-registry="flowRegistry" />

    <wf:flow-registry id="flowRegistry"
        base-path="/WEB-INF/views/flows"
        flow-builder-services="flowBuilderServices">
        <wf:flow-location-pattern
            value="/**/*-flow.xml" />
    </wf:flow-registry>

    <wf:flow-builder-services
        id="flowBuilderServices" view-factory-creator="viewFactoryCreator"
        validator="validator" />

    <bean
        class="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter">
        <property name="flowExecutor" ref="flowExecutor" />
    </bean>

    <bean
        class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
        <property name="flowRegistry" ref="flowRegistry" />
        <property name="order" value="-1" />
    </bean>

    <bean id="viewFactoryCreator"
        class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator">
        <property name="viewResolvers" ref="viewResolver" />
    </bean>

    <!-- validator bean -->

    <bean id="validator"
        class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
</beans>

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>net.kzn</groupId>
            <artifactId>shoppingbackend</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <packaging>jar</packaging>

            <name>shoppingbackend</name>
            <description>Demo project for Spring Boot</description>

            <parent>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>1.5.17.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>
            </properties>

            <dependencies>

                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-actuator</artifactId>
                </dependency>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
                </dependency>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-data-jpa</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-test</artifactId>
                    <scope>test</scope>
                </dependency>

                <dependency>
                    <groupId>org.springframework.data</groupId>
                    <artifactId>spring-data-rest-hal-browser</artifactId>
                </dependency>

                <!-- https://mvnrepository.com/artifact/org.springframework.webflow/spring-webflow -->
                <dependency>
                    <groupId>org.springframework.webflow</groupId>
                    <artifactId>spring-webflow</artifactId>
                    <version>2.5.1.RELEASE</version>
                </dependency>
                <dependency>
                <groupId>net.java.dev.jna</groupId>
                <artifactId>jna</artifactId>
                <version>4.2.2</version>
                </dependency>


                <!-- Hibernate Dependency -->
                <dependency>
                    <groupId>org.hibernate</groupId>
                    <artifactId>hibernate-core</artifactId>
                    <version>5.2.7.Final</version>
                </dependency>
                
                <!-- database connection pooling -->
                <dependency>
                    <groupId>org.apache.commons</groupId>
                    <artifactId>commons-dbcp2</artifactId>
                    <version>2.1.1</version>
                    <exclusions>
                        <exclusion>
                            <groupId>commons-logging</groupId>
                            <artifactId>commons-logging</artifactId>
                        </exclusion>
                    </exclusions>
                </dependency>

                <dependency>
                    <groupId>com.h2database</groupId>
                    <artifactId>h2</artifactId>
                    <scope>runtime</scope>
                </dependency>
            </dependencies>

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

              <resources>
                <resource>
                  <directory>src/main/webapp</directory>
                </resource>
              </resources>
            </build>


        </project>

控制台

        22:08:10.893 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Included patterns for restart : []
    22:08:10.897 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Excluded patterns for restart : [/spring-boot-actuator/target/classes/, /spring-boot-devtools/target/classes/, /spring-boot/target/classes/, /spring-boot-starter-[\w-]+/, /spring-boot-autoconfigure/target/classes/, /spring-boot-starter/target/classes/]
    22:08:10.898 [main] DEBUG org.springframework.boot.devtools.restart.ChangeableUrls - Matching URLs for reloading : [file:/home/vidyesh/Downloads/spring-boot/onlineshopping/target/classes/, file:/home/vidyesh/Downloads/spring-boot/shoppingbackend/target/classes/]
    2018-11-21 22:08:11.600  INFO 3913 --- [  restartedMain] n.k.o.OnlineshoppingApplication          : Starting OnlineshoppingApplication on vidyesh-SVE15115ENB with PID 3913 (/home/vidyesh/Downloads/spring-boot/onlineshopping/target/classes started by vidyesh in /home/vidyesh/Downloads/spring-boot/onlineshopping)
    2018-11-21 22:08:11.603  INFO 3913 --- [  restartedMain] n.k.o.OnlineshoppingApplication          : No active profile set, falling back to default profiles: default
    2018-11-21 22:08:11.788  INFO 3913 --- [  restartedMain] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@13fed3ea: startup date [Wed Nov 21 22:08:11 IST 2018]; root of context hierarchy
    2018-11-21 22:08:13.963  INFO 3913 --- [  restartedMain] o.s.b.f.xml.XmlBeanDefinitionReader      : Loading XML bean definitions from class path resource [spring-security.xml]
    2018-11-21 22:08:14.221  INFO 3913 --- [  restartedMain] o.s.s.core.SpringSecurityCoreVersion     : You are running with Spring Security Core 5.0.9.RELEASE
    2018-11-21 22:08:14.227  INFO 3913 --- [  restartedMain] o.s.s.config.SecurityNamespaceHandler    : Spring Security 'config' module version is 5.0.9.RELEASE
    2018-11-21 22:08:14.271  INFO 3913 --- [  restartedMain] o.s.b.f.s.DefaultListableBeanFactory     : Overriding bean definition for bean 'requestDataValueProcessor' with a different definition: replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration; factoryMethodName=requestDataValueProcessor; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/security/config/annotation/web/configuration/WebMvcSecurityConfiguration.class]] with [Root bean: class [org.springframework.security.web.servlet.support.csrf.CsrfRequestDataValueProcessor]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null]
    2018-11-21 22:08:14.294  INFO 3913 --- [  restartedMain] erInvocationSecurityMetadataSourceParser : Creating access control expression attribute 'hasAuthority('ADMIN')' for /manage/**
    2018-11-21 22:08:14.297  INFO 3913 --- [  restartedMain] erInvocationSecurityMetadataSourceParser : Creating access control expression attribute 'hasAuthority('USER')' for /cart/**
    2018-11-21 22:08:14.298  INFO 3913 --- [  restartedMain] erInvocationSecurityMetadataSourceParser : Creating access control expression attribute 'permitAll' for /**
    2018-11-21 22:08:14.352  INFO 3913 --- [  restartedMain] s.s.c.h.HttpSecurityBeanDefinitionParser : Checking sorted filter chain: [Root bean: class [org.springframework.security.web.context.SecurityContextPersistenceFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 200, Root bean: class [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 400, Root bean: class [org.springframework.security.web.header.HeaderWriterFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 500, Root bean: class [org.springframework.security.web.csrf.CsrfFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 700, <org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0>, order = 1200, Root bean: class [org.springframework.security.web.savedrequest.RequestCacheAwareFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 1700, Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.security.config.http.HttpConfigurationBuilder$SecurityContextHolderAwareRequestFilterBeanFactory#0; factoryMethodName=getBean; initMethodName=null; destroyMethodName=null, order = 1800, Root bean: class [org.springframework.security.web.authentication.AnonymousAuthenticationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 2100, Root bean: class [org.springframework.security.web.session.SessionManagementFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 2200, Root bean: class [org.springframework.security.web.access.ExceptionTranslationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 2300, <org.springframework.security.web.access.intercept.FilterSecurityInterceptor#0>, order = 2400]
    2018-11-21 22:08:16.825  INFO 3913 --- [  restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'hibernateConfig' of type [net.kzn.shoppingbackend.config.HibernateConfig$$EnhancerBySpringCGLIB$$5feb6d4c] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    2018-11-21 22:08:17.159  INFO 3913 --- [  restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ws.config.annotation.DelegatingWsConfiguration' of type [org.springframework.ws.config.annotation.DelegatingWsConfiguration$$EnhancerBySpringCGLIB$$b4635f5c] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    2018-11-21 22:08:17.247  INFO 3913 --- [  restartedMain] .w.s.a.s.AnnotationActionEndpointMapping : Supporting [WS-Addressing August 2004, WS-Addressing 1.0]
    2018-11-21 22:08:17.414  INFO 3913 --- [  restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$fcb9a5d] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    2018-11-21 22:08:17.654  INFO 3913 --- [  restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.hateoas.config.HateoasConfiguration' of type [org.springframework.hateoas.config.HateoasConfiguration$$EnhancerBySpringCGLIB$$8f4be78f] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    2018-11-21 22:08:18.783  INFO 3913 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
    2018-11-21 22:08:18.849  INFO 3913 --- [  restartedMain] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
    2018-11-21 22:08:18.850  INFO 3913 --- [  restartedMain] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.34
    2018-11-21 22:08:18.876  INFO 3913 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
    2018-11-21 22:08:19.099  INFO 3913 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
    2018-11-21 22:08:19.103  INFO 3913 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 7315 ms
    2018-11-21 22:08:20.203  INFO 3913 --- [ost-startStop-1] o.s.j.d.DriverManagerDataSource          : Loaded JDBC driver: org.h2.Driver
    2018-11-21 22:08:20.823  INFO 3913 --- [ost-startStop-1] o.s.s.web.DefaultSecurityFilterChain     : Creating filter chain: Ant [pattern='/resources/**'], []
    2018-11-21 22:08:21.100  INFO 3913 --- [ost-startStop-1] o.s.s.p.JdbcUserDetailsManager           : No authentication manager set. Reauthentication of users when changing passwords will not be performed.
    2018-11-21 22:08:21.370  INFO 3913 --- [ost-startStop-1] o.s.s.web.DefaultSecurityFilterChain     : Creating filter chain: org.springframework.security.web.util.matcher.AnyRequestMatcher@1, [org.springframework.security.web.context.SecurityContextPersistenceFilter@4294627f, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@21e157ed, org.springframework.security.web.header.HeaderWriterFilter@5d3d9f8c, org.springframework.security.web.csrf.CsrfFilter@309333e8, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@3f7bf900, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@485ec9d3, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@236ad6b2, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@140fa9fd, org.springframework.security.web.session.SessionManagementFilter@2e3d5d68, org.springframework.security.web.access.ExceptionTranslationFilter@321ea81f, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@3cb8af30]
    2018-11-21 22:08:21.398  INFO 3913 --- [ost-startStop-1] o.s.s.c.h.DefaultFilterChainValidator    : Checking whether login URL '/login' is accessible with your configuration
    2018-11-21 22:08:21.578  INFO 3913 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0' to: [/*]
    2018-11-21 22:08:21.578  INFO 3913 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Servlet dispatcherServlet mapped to [/]
    2018-11-21 22:08:21.580  INFO 3913 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Servlet webServlet mapped to [/h2-console/*]
    2018-11-21 22:08:21.581  INFO 3913 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Servlet messageDispatcherServlet mapped to [/services/*]
    2018-11-21 22:08:21.969  INFO 3913 --- [  restartedMain] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
    2018-11-21 22:08:22.012  INFO 3913 --- [  restartedMain] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [
        name: default
        ...]
    2018-11-21 22:08:22.190  INFO 3913 --- [  restartedMain] org.hibernate.Version                    : HHH000412: Hibernate Core {5.2.17.Final}
    2018-11-21 22:08:22.194  INFO 3913 --- [  restartedMain] org.hibernate.cfg.Environment            : HHH000206: hibernate.properties not found
    2018-11-21 22:08:22.279  INFO 3913 --- [  restartedMain] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
    2018-11-21 22:08:22.691  INFO 3913 --- [  restartedMain] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
    2018-11-21 22:08:24.407  INFO 3913 --- [  restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
    2018-11-21 22:08:26.427  INFO 3913 --- [  restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2018-11-21 22:08:26.732  INFO 3913 --- [  restartedMain] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@13fed3ea: startup date [Wed Nov 21 22:08:11 IST 2018]; root of context hierarchy
    2018-11-21 22:08:26.754  INFO 3913 --- [  restartedMain] s.w.s.m.m.a.RequestMappingHandlerAdapter : Detected @ModelAttribute methods in globalController
    2018-11-21 22:08:26.892  WARN 3913 --- [  restartedMain] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
    2018-11-21 22:08:27.152  INFO 3913 --- [  restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2018-11-21 22:08:27.197  INFO 3913 --- [  restartedMain] .m.m.a.ExceptionHandlerExceptionResolver : Detected @ExceptionHandler methods in globalDefaultExceptionHandler
    2018-11-21 22:08:27.198  INFO 3913 --- [  restartedMain] .m.m.a.ExceptionHandlerExceptionResolver : Detected @ExceptionHandler methods in repositoryRestExceptionHandler
    2018-11-21 22:08:28.114  INFO 3913 --- [  restartedMain] o.s.d.r.w.RepositoryRestHandlerAdapter   : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@13fed3ea: startup date [Wed Nov 21 22:08:11 IST 2018]; root of context hierarchy
    2018-11-21 22:08:28.123  INFO 3913 --- [  restartedMain] o.s.d.r.w.RepositoryRestHandlerAdapter   : Detected @ModelAttribute methods in globalController
    2018-11-21 22:08:28.146  INFO 3913 --- [  restartedMain] o.s.d.r.w.RepositoryRestHandlerMapping   : Mapped "{[/ || ],methods=[GET],produces=[application/hal+json || application/json]}" onto public org.springframework.http.HttpEntity<org.springframework.data.rest.webmvc.RepositoryLinksResource> org.springframework.data.rest.webmvc.RepositoryController.listRepositories()
    2018-11-21 22:08:28.319  INFO 3913 --- [  restartedMain] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 2 endpoint(s) beneath base path '/actuator'
    2018-11-21 22:08:28.350  INFO 3913 --- [  restartedMain] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/actuator],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto protected java.util.Map<java.lang.String, java.util.Map<java.lang.String, org.springframework.boot.actuate.endpoint.web.Link>> org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping.links(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
    2018-11-21 22:08:28.621  INFO 3913 --- [  restartedMain] o.s.b.d.a.OptionalLiveReloadServer       : LiveReload server is running on port 35729
    2018-11-21 22:08:28.784  INFO 3913 --- [  restartedMain] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
    2018-11-21 22:08:28.930  INFO 3913 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
    2018-11-21 22:08:28.956  INFO 3913 --- [  restartedMain] n.k.o.OnlineshoppingApplication          : Started OnlineshoppingApplication in 18.037 seconds (JVM running for 18.919)

我的项目文件结构

在浏览器中显示错误

请告诉我如何解决这个问题。我在这里做错了什么?

共有1个答案

皮煜
2023-03-14

答案在文档中:

如果应用程序打包为JAR,则不要使用src/main/webapp目录。虽然这个目录是一个通用的标准,但它只与war打包一起工作,而且如果您生成一个JAR,它会被大多数构建工具默默地忽略。

还有:

默认情况下,spring boot从类路径中名为/static(或/public或/resources或/meta-inf/resources)的目录或ServletContext的根提供静态内容

选项有:

  1. 将src/main/webapp文件夹的内容移动到适当的文件夹
  2. 将src/main/webapp添加到pom.xml中的资源
  3. 使用war打包

最后检查配置文件中是否仍有正确的路径。

 类似资料:
  • 我正在尝试将我的spring mvc项目转换为spring boot。我根据spring boot转换了所有必要的文件。控制台上没有错误。但当我在浏览器中运行我的web应用程序时,我收到了这个错误。错误:“Whitelabel Error Page”没有可用的消息请告诉我为什么会出现此错误以及如何解决? PageController.java OnlineshoppingApplication。J

  • 我坚持使用这个简单的MVC示例。当我启动应用程序并转到localhost:8080时,我得到了“白标签错误页面”,甚至我在“src/main/资源/模板”中创建了“index.html”。我还在我的索引方法上添加了@Request estMap(“/”)。我找不到问题。 : : -在"src/main/资源/模板"下:

  • 下面是我的代码:我正在从application.properties文件swagerconfig.java获取所有值 下面是我的springboot初始值设定项: ServletInitializer.java 日志显示它已映射: 这是我得到的错误:

  • 我试着从2天开始运行一个简单的Spring Boot应用程序,但仍然无法使其工作。我检查了所有的相关问题和博客,但仍然坚持问题。 我的项目结构如下所示。 pom.xml 应用程序.属性 LoginController login.jsp Sun Sep 23 17:34:52 IST 2018出现意外错误(类型=未找到,状态=404)。无可用消息 从下面的堆栈跟踪中,我可以看到spring能够获取

  • 当我使用ide运行我的springboot应用程序时,它工作正常。 但当我运行它的jar时,我得到了白标签错误页面。 白标签错误页面 此应用程序没有 /error的显式映射,因此您将此视为后备。 2018年10月9日星期二15:42:47出现意外错误(类型=未找到,状态=404)/WEB-INF/views/index。jsp

  • 我不知道如何解决这个问题 spring端:role.java 因此,如果我现在尝试inline=“javascript”: 当我运行它时,我得到这样的响应: 白标签错误页