idea运行多模块的springbootjsp

  • 2016-11-08 13:40 更新内容如下:

    昨天又遇到这个问题了,结果直到现在(2017-03-06 19:00)才想起来
    同事知道了还跟我说:我刚来公司的时候,你还帮我弄过这个呢
    将近两天的时间呐,都白瞎了,哎我这脑子啊。。

现象

1、idea里面整个工程只有一个MavenModule的情况下,访问SpringBoot应用的JSP页面,没任何问题

2、多个MavenModule情况下,idea启动SpringBootApplication之后,无法访问JSP页面,总是提示404

  而其它资源如 js、css、controller 等都可访问(jsp 是放在 src/main/webapp/ 下的)

  同样的代码,同事的 STS(Run as Spring Boot App) 启动后访问JSP页面,没任何问题

解决

这东西一共搞了我12个小时,才找到解决方案,还是年轻啊。。

参考了这两个链接:jetbrains和stackoverflow

RUN模式

1、pom配置spring-boot-maven-plugin


   
      
         org.springframework.boot
         spring-boot-maven-plugin
         1.3.7.RELEASE
         
            com.jadyer.union.youqian.boss.common.BootStrap
         
      
   

BootStrap.java代码如下

package com.jadyer.union.youqian.boss.common;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.web.filter.CharacterEncodingFilter;

import javax.servlet.Filter;

@SpringBootApplication(scanBasePackages="com.jadyer.union")
public class BootStrap extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(getClass());
    }

    @Bean
    public Filter characterEncodingFilter(){
        return new CharacterEncodingFilter("UTF-8", true);
    }

    public static void main(String[] args) {
        new SpringApplicationBuilder().sources(BootStrap.class).profiles("local").run(args);
    }
}

2、配置启动方式

idea顶部菜单-->Run-->Edit Configurations--> + -->选择Maven

最好在下面的Before launch: Activate tool window一栏增加 Build 操作,这里就不截图了

  • 注意Module运行时的工作空间依赖问题

    建议勾选Resolve Workspace artifacts,否则启动时该Module只会找本地仓库的依赖,不找workspace里的submodule。光这个问题就搞了我5个小时,后来还是在stackoverflow找到的解决方法

idea运行多模块的springbootjsp_第1张图片

3、启动

有两个位置(实际执行的都一样),见下方截图

(若在Maven Projects视图执行,还可展开main-boss–>Plugins–>spring-boot–>spring-boot:run–>Run)

idea运行多模块的springbootjsp_第2张图片

DEBUG模式

1、pom中配置spring-boot-maven-plugin时增加jvmArguments配置(注意UTF-8参数,否则控制台中文会乱码)


   
      
         org.springframework.boot
         spring-boot-maven-plugin
         1.3.7.RELEASE
         
            com.jadyer.union.youqian.boss.common.BootStrap
            -Dfile.encoding=UTF-8 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
         
      
   

2、配置启动方式

idea顶部菜单-->Run-->Edit Configurations--> + -->选择Remote使用默认的配置并命名为BossRunRemote

idea运行多模块的springbootjsp_第3张图片

3、启动

BossRun点击Run运行(不用点DebugRun)成功后,再选择BossRunRemote点击Debug运行,即可。

你可能感兴趣的:(IEDA)