java - 将 java web 应用程序部署到 heroku : NoClassDefFoundError caused by ClassNotFoundException

标签 java heroku classnotfoundexception noclassdeffounderror javax.json

我遵循了这个指令:

https://devcenter.heroku.com/articles/deploying-java

将 java web 应用程序部署到 heroku。

我的 Procfile 的内容如下:

web: java $JAVA_OPTS -cp target/classes:target/dependency/* com.michael.optimizer.Optimizer

(优化器是我的主类的名称。)

执行命令

mvn clean install 

成功构建项目。

然后执行命令

heroku local web

导致以下错误消息:

Exception in thread "main" 
5:33:48 PM web.1 |  java.lang.NoClassDefFoundError: javax/json/Json
5:33:48 PM web.1 |  at com.michael.optimizer.api.JsonRequest.doJsonRequest(JsonRequest.java:29)
5:33:48 PM web.1 |      at         com.michael.optimizer.api.StationApi.doJsonRequest(StationApi.java:150)
5:33:48 PM web.1 |      at     com.michael.optimizer.api.StationApi.areaSearch(StationApi.java:73)
5:33:48 PM web.1 |      at com.michael.optimizer.Optimizer.main(Optimizer.java:23)
5:33:48 PM web.1 |  Caused by: java.lang.ClassNotFoundException: javax.json.Json
5:33:48 PM web.1 |      at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
5:33:48 PM web.1 |      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
5:33:48 PM web.1 |      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
5:33:48 PM web.1 |      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
5:33:48 PM web.1 |      ... 4 more

我不明白的是:当我在本地运行应用程序时,一切正常。 (它工作正常也就不足为奇了,因为在文件夹 ~/.m2/repository/javax/javaee-web-api/7.0/javaee-web-api-7.0.jar 里面有它应该在的 json 包。)

仅当我尝试部署到 heroku 时,显然找不到类 javax.json.Json。

怎么了???

最佳答案

您可能想使用 copy-dependencies ,

mvn install dependency:copy-dependencies 

这会复制 target/dependencies 中的所有依赖项。

如果你想排除测试范围依赖,

mvn install dependency:copy-dependencies -DexcludeScope=test

关于java - 将 java web 应用程序部署到 heroku : NoClassDefFoundError caused by ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60904635/

相关文章:

javascript - 在JSP、JAVA、WEB.xml中哪里添加x-frame-options :sameorigin ,?

java - 使用导入的库运行 jar 文件时出现问题?

android - Robotium 和 ActionBarSherlock

java - 使用 apache commons exec 运行管道命令的更好方法

java - 使用 server 发送电子邮件

ruby-on-rails - 使用 rails 应用程序 : Error with build stream, 轮询结果的 heroku 错误

未找到 heroku Assets 404

css - Sass::SyntaxError: "...orm-group::not("之后无效的 CSS:预期的 pseudo_expr,是 ":first-child)"

java - SOAP 客户端应用程序异常

java - Amazon EC2 上的 Neo4j - 无法从远程机器访问