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

Heroku上的Java web应用程序:无法访问jarfile

邹祺
2023-03-14

我正在尝试将我的JavaSpring Boot Web应用程序部署到Heroku。

要在本地启动它,我运行:

mvn安装

然后

java$JAVA_OPTS-jar目标/*. war

因此,我为Heroku创建了Procfile:web:java$java_OPTS-jar target/*。战争

我使用Heroku-Github集成,应用程序从Github部署到Heroku。所以我就把它推到那里。

应用程序不会启动。

heroku日志--app myapp给我:

2015-09-09T21:53:25.581128+00:00 heroku[web.1]: Starting process with command `java $JAVA_OPTS -jar target/*.war`
2015-09-09T21:53:27.110820+00:00 app[web.1]: Error: Unable to access jarfile target/*.war`

heroku使用ls-a运行bash--app myapp不显示目标目录。

我认为Heroku没有构建这个应用程序。但是我做错了什么?提前感谢您的建议!

共有3个答案

仉英朗
2023-03-14
  1. 在pom中包装零件。xml应该始终是war,而不是jar
况庆
2023-03-14

我找到了错误的原因。这是构建日志的一部分:

-----> Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used.
       Detected buildpacks: Node.js, Java
       See https://devcenter.heroku.com/articles/buildpacks#buildpack-detect-order
-----> Node.js app detected
-----> Creating runtime environment

根据Heroku的构建顺序,该应用程序被视为NodeJS one。因此,解决方案是设置java构建包:

heroku buildpacks:set https://github.com/heroku/heroku-buildpack-java

然后将任何更改推送到应用程序,使其重新生成。

靳祺然
2023-03-14

而不是mvn安装domvn包以了解差异检查http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

使用Heroku Maven插件部署WAR文件允许您将部署过程与现有的Maven过程集成。Heroku插件使用您的mvn包阶段生成的工件,并将它们构建到上传到Heroku服务器的Slug文件中。

这样,Heroku Maven插件就避免了远程重新编译项目的开销。通常情况下,您可能已经测试了使用哪种服务器构建CI,并且可能更喜欢使用这种方法。

资料来源:https://devcenter.heroku.com/articles/war-deployment#deployment-使用heroku maven插件

关于部署Spring Boot,需要采取一些步骤:

>

web:java-Dserver。port=$port-jar-target/demo-0.0.1-SNAPSHOT。jar

指定JDK,默认为1.8(如果在Maven中指定了1.8,则无需更改)

检查http://docs.spring.io/spring-boot/docs/current/reference/html/cloud-deployment-heroku.html

要执行Procfile,请使用heroku local

 类似资料:
  • 我是kubernetes的新手,我尝试使用Kubernete运行小型应用程序。我创建了docker镜像并使用minikube运行它。所以应用程序非常简单,它只打印hello world。 我的dockerfile文件: deployment.yaml 我运行命令: 创建deployment.yaml 输出是: 服务/myhelloworldservice已创建 创建的部署.apps/我的问候世界

  • 我正试图在heroku上部署一个dropwizard应用程序,但它无法启动。在本地使用“gradle run server config.yml”可以很好地工作 我正在使用gradle进行构建,当我推到heroku时,构建就成功了。我的分级阶段任务依赖于清洁和罐子(胖罐子创建) 我的Procfile有: 我试过没有成功 Web:java$java_opts-jar build/libs/dropw

  • 我有一个在web容器tomcat上运行的java web应用程序。该web应用程序使用hibernate框架连接到DB,我需要将其从IntelliJ 14.0.2部署到heruko。所以我添加了maven框架,这就是pom。xml: 当设置maven的编辑配置并运行它时,我得到一条消息:[错误]在当前项目和插件组[org.apache.maven.plugins,org.codehaus.mojo

  • 部署在Heroku上的Rails应用程序无法加载。我设置了数据库迁移,我还有puma和procfile。。。我真的不知道。 这是我的日志: 宝石文件 程序文件 配置/puma.rb 工人整数(ENV['WEB_CONCURRENCY']||2)threads_count=整数(ENV['RAILS_MAX_THREADS']||5)线程threads_count,threads_count pre

  • 我在AWS弹性豆茎上托管了我的Spring引导应用程序,但是当我试图用公共网址访问它时,它给我502网关错误。在日志中,我可以看到以下错误:2017/08/05 20:10:33[错误] 22965#0:*157连接()失败(111:连接拒绝)而连接到上游,客户端: XXX.68.241.XXX,服务器:,请求:"GET/swagger-ui.htmlHTTP/1.1",上游:"http://12

  • 我正在尝试将我的Docked React应用程序部署到Kubernetes。我相信我已经正确对接了,但我无法访问暴露的吊舱。 我没有在Docker或Kubernetes工作的经验,所以任何帮助都将不胜感激。 我的反应应用程序只是从Tomcat提供的静态文件(从npm运行构建)。 我的Dockerfile在下面。总之,我把我的应用程序放在Tomcat文件夹中,并公开端口8080。 我构建并将Dock