Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从IDE运行SpringWeb与从jar文件运行SpringWeb_Java_Spring_Jsp_Spring Mvc_Executable Jar - Fatal编程技术网

Java 从IDE运行SpringWeb与从jar文件运行SpringWeb

Java 从IDE运行SpringWeb与从jar文件运行SpringWeb,java,spring,jsp,spring-mvc,executable-jar,Java,Spring,Jsp,Spring Mvc,Executable Jar,我试图创建一个简单的web应用程序,在FE中使用angular,在BE中使用Spring 如果我从IDE(IntelliJ IDEA 2017.2)运行它,一切都正常,但是如果我启动jar文件,它就找不到jsp页面,并显示一个白标签错误页面 它的gradle build和thease是依赖项 dependencies { compile('org.springframework.boot:spring-boot-starter-data-rest') compile('org

我试图创建一个简单的web应用程序,在FE中使用angular,在BE中使用Spring

如果我从IDE(IntelliJ IDEA 2017.2)运行它,一切都正常,但是如果我启动jar文件,它就找不到jsp页面,并显示一个白标签错误页面

它的gradle build和thease是依赖项

dependencies {
    compile('org.springframework.boot:spring-boot-starter-data-rest')
    compile('org.springframework.boot:spring-boot-starter-web')
    testCompile('org.springframework.boot:spring-boot-starter-test')
    compile 'javax.servlet:jstl:1.2'
}
ChartConfiguration.java

@Configuration
@EnableWebMvc
public class ChartConfiguration extends WebMvcConfigurerAdapter{

@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
    viewResolver.setViewClass(JstlView.class);
    viewResolver.setPrefix("/WEB-INF/views/");
    viewResolver.setSuffix(".jsp");
    registry.viewResolver(viewResolver);

}

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/static/**").addResourceLocations("/static/");
}

@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    configurer.enable();
}

}
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

import javax.servlet.Filter;

public class ChartInitializer extends 
AbstractAnnotationConfigDispatcherServletInitializer {

@Override
protected Class<?>[] getRootConfigClasses() {
    return new Class[] { ChartConfiguration.class };
}

@Override
protected Class<?>[] getServletConfigClasses() {
    return null;
}

@Override
protected String[] getServletMappings() {
    return new String[] { "/" };
}

@Override
protected Filter[] getServletFilters() {
    Filter [] singleton = { new CORSFilter() };
    return singleton;
}

}
@Controller
@RequestMapping("/")
public class IndexController {

@RequestMapping(method = RequestMethod.GET)
public String getIndexPage() {
    return "ChartManagement";
}

}
ChartInitializer.java

@Configuration
@EnableWebMvc
public class ChartConfiguration extends WebMvcConfigurerAdapter{

@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
    viewResolver.setViewClass(JstlView.class);
    viewResolver.setPrefix("/WEB-INF/views/");
    viewResolver.setSuffix(".jsp");
    registry.viewResolver(viewResolver);

}

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/static/**").addResourceLocations("/static/");
}

@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    configurer.enable();
}

}
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

import javax.servlet.Filter;

public class ChartInitializer extends 
AbstractAnnotationConfigDispatcherServletInitializer {

@Override
protected Class<?>[] getRootConfigClasses() {
    return new Class[] { ChartConfiguration.class };
}

@Override
protected Class<?>[] getServletConfigClasses() {
    return null;
}

@Override
protected String[] getServletMappings() {
    return new String[] { "/" };
}

@Override
protected Filter[] getServletFilters() {
    Filter [] singleton = { new CORSFilter() };
    return singleton;
}

}
@Controller
@RequestMapping("/")
public class IndexController {

@RequestMapping(method = RequestMethod.GET)
public String getIndexPage() {
    return "ChartManagement";
}

}
我的jsp页面只包含一个标记,没有其他内容


我做错了什么,我想不出来?

所以我让它工作了,但配置有点不同。我已经搬走了

  • ChartConfiguration.java
  • ChartInitializer.java
  • main/resources文件夹中的所有内容
现在我在main/resources中创建了一个名为templates的文件夹,里面是index.html

我还添加了一个新的依赖项

compile("org.springframework.boot:spring-boot-starter-thymeleaf")
并将IndexController更改为

@Controller
@RequestMapping("/")
public class IndexController {

@RequestMapping(method = RequestMethod.GET)
public String getIndexPage() {
    return "index";
}

}

所以我让它工作,但有点不同的配置。我已经搬走了

  • ChartConfiguration.java
  • ChartInitializer.java
  • main/resources文件夹中的所有内容
现在我在main/resources中创建了一个名为templates的文件夹,里面是index.html

我还添加了一个新的依赖项

compile("org.springframework.boot:spring-boot-starter-thymeleaf")
并将IndexController更改为

@Controller
@RequestMapping("/")
public class IndexController {

@RequestMapping(method = RequestMethod.GET)
public String getIndexPage() {
    return "index";
}

}

/WEB-INF
!=
/META-INF/resources/WEB-INF
,将您的
WEB-INF
文件夹移动到
src/main/resources
的直接根目录中。您刚刚尝试过它。这样它就不会从IDE启动。你有一个打包问题。JSP在Angular应用程序中做什么?我可以将其更改为html文件,目前我只希望它启动。但是我不太明白你的第一句话。
/WEB-INF
!=
/META-INF/resources/WEB-INF
,将您的
WEB-INF
文件夹移动到
src/main/resources
的直接根目录中。您刚刚尝试过它。这样它就不会从IDE启动。你有一个打包问题。JSP在Angular应用程序中做什么?我可以将其更改为html文件,目前我只希望它启动。但我不太明白你的第一句话。