将Java Web应用程序部署到heroku:由ClassNotFoundException引起的NoClassDefFoundError

问题描述 投票:0回答:1

我遵循了此指令:

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

将Java Web应用程序部署到heroku。

我的Procfile的内容如下:

web: java $JAVA_OPTS -cp target/classes:target/dependency/* com.michael.optimizer.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。

怎么了?

我遵循了以下说明:https://devcenter.heroku.com/articles/deploying-java将Java Web应用程序部署到heroku。我的Procfile内容如下:网络:java $ JAVA_OPTS -cp target / ...

java heroku classnotfoundexception noclassdeffounderror javax.json
1个回答
0
投票

您可能想使用copy-dependencies

© www.soinside.com 2019 - 2024. All rights reserved.