Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.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 将CodeStar Spring MVC项目更改为Spring Boot_Java_Spring Boot_Spring Mvc_Thymeleaf_Aws Codestar - Fatal编程技术网

Java 将CodeStar Spring MVC项目更改为Spring Boot

Java 将CodeStar Spring MVC项目更改为Spring Boot,java,spring-boot,spring-mvc,thymeleaf,aws-codestar,Java,Spring Boot,Spring Mvc,Thymeleaf,Aws Codestar,我有一个SpringBoot项目,在IDE中运行时可以完美地工作。我想通过AWS CodeStar运行这个。不幸的是,CodeStar创建的默认Spring模板使用SpringMVC 我不能仅仅用我的Spring引导项目覆盖默认的Spring MVC项目(它不工作)。我可以将我的一些资源复制到MVC项目中,例如index.html,这样就可以了。但是像Thymeleaf这样的功能不起作用。出于这个和其他原因,我想将提供的SpringMVC更改为我已经拥有的SpringBoot结构 我按照这里的指

我有一个SpringBoot项目,在IDE中运行时可以完美地工作。我想通过AWS CodeStar运行这个。不幸的是,CodeStar创建的默认Spring模板使用SpringMVC

我不能仅仅用我的Spring引导项目覆盖默认的Spring MVC项目(它不工作)。我可以将我的一些资源复制到MVC项目中,例如index.html,这样就可以了。但是像Thymeleaf这样的功能不起作用。出于这个和其他原因,我想将提供的SpringMVC更改为我已经拥有的SpringBoot结构

我按照这里的指示:

不幸的是,这没有帮助。我可以创建应用程序入口点并添加Spring启动依赖项,而不会破坏应用程序。但当我删除默认依赖项或与MVC关联的配置时,应用程序会中断。尝试访问URL时,我收到一个404错误,说明如下:

源服务器找不到目标资源的当前表示形式,或者不愿意透露存在该表示形式

调试此错误消息(例如)没有帮助

该消息似乎已连接到web资源。我在文件夹资源和webapp/resources中都有我的web资源。Spring Boot不需要任何位置配置,对吗?默认情况下,它使用此位置

有人能告诉我,为了能够使用我现有的Spring Boot项目,需要删除哪些内容,需要添加哪些内容吗

编辑:

这是指向AWS CodeStar Spring web应用程序默认模板的链接:

这是我的Spring Boot项目结构:


我知道您之前表示,您尝试使用Spring Boot项目,但做了一些修改,但没有成功,但我认为实际上有可能在AWS CodeStar上成功部署您的应用程序,这将是我的建议

我还意识到,在您的屏幕截图中,您包含了一些必需的工件和类,但请仔细检查您在将应用程序部署到AWS CodeStar时是否遵循了这些步骤

让我们从本地运行的Spring Boot项目的原始版本开始,不做任何修改,然后执行以下更改

首先,如您共享的GitHub中所示,确保在项目中包含以下文件。AWS的部署基础设施需要它们:

  • appspec.yml
  • buildspec.yml
  • template.yml
  • template configuration.json
  • 整个
    脚本
    目录
请根据您的具体需要调整任何必要的配置,特别是,
template configuration.json

然后,在
pom.xml
中执行以下修改。其中一些是Spring Boot作为应用程序工作所必需的,而另一些则是AWS CodeStar中部署所必需的

确保将
包装
指示为
战争

战争
为确保嵌入式servlet容器不会干扰war文件部署到的Tomcat,请按照上述文档中的建议将Tomcat依赖项标记为已提供:


org.springframework.boot
,请确保您的
MyProjectApplication
-我假设该类是您的主要入口点子类
SpringBootServletInitializer
,并相应地覆盖
配置
,例如:

@springboot应用程序
公共类MyProjectApplication扩展了SpringBootServletInitializer{
@凌驾
受保护的SpringApplicationBuilder配置(SpringApplicationBuilder应用程序){
返回应用程序.sources(MyProjectApplication.class);
}
公共静态void main(字符串[]args){
run(MyProjectApplication.class,args);
}
}
请随时根据您的特定用例调整该类

使用此设置,尝试部署您的应用程序并查看它是否工作:也许您可以发现某种库依赖性问题,但我认为在大多数情况下,它应该可以正常工作

在第一步中,您可以尝试按照项目模板中提供的说明在本地部署稍后将部署到AWS CodeStar的应用程序版本,基本上,在配置了答案中描述的必要更改后,通过运行:

mvn清洁包
并在本地tomcat环境中部署生成的war。请注意,标准tomcat安装中可能已经存在
ROOT
应用程序(您可以通过检查
webapps
文件夹进行验证):您可以覆盖该war文件

对于本地测试,您甚至可以选择不同的应用程序名称(配置
build.finalName
pom.xml
文件中的
warName
):重要的是验证应用程序是否在本地成功运行

如果愿意,您可以选择直接将应用程序部署到AWS CodeStar,并在必要时检查日志

在任何情况下,请注意两件事:一方面,如果您的应用程序中配置了任何绝对路径,那么它可能是您在评论中提到的
404
问题的原因。请注意,您的应用程序将部署在具有上下文根“/”的Tomcat中

另一方面,请查看如何配置数据库访问。 可能您使用了
application.properties
,这很好,但是请注意,在使用该应用程序时,数据库必须是可访问的:可能Spring无法创建必要的数据源,以及与之相关的持久性管理器或相关内容,因此,应用程序没有启动。同样,它可能是r