![](/img/trans.png)
[英]Error caused by java.lang.NoClassDefFoundError and ClassNotFoundException
[英]deploying java web app to heroku: NoClassDefFoundError caused by ClassNotFoundException
我遵循了這個指令:
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。
怎么了???
您可能想要使用copy-dependencies ,
mvn install dependency:copy-dependencies
這將復制target/dependencies 中的所有依賴項。
如果要排除測試范圍依賴項,
mvn install dependency:copy-dependencies -DexcludeScope=test
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.