Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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 web app部署到heroku:NoClassDefFoundError由ClassNotFoundException引起_Java_Heroku_Classnotfoundexception_Noclassdeffounderror_Javax.json - Fatal编程技术网

将java web app部署到heroku:NoClassDefFoundError由ClassNotFoundException引起

将java web app部署到heroku:NoClassDefFoundError由ClassNotFoundException引起,java,heroku,classnotfoundexception,noclassdeffounderror,javax.json,Java,Heroku,Classnotfoundexception,Noclassdeffounderror,Javax.json,我按照这个指示: 将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

我按照这个指示:

将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显然没有找到

有什么问题吗?

您可能想使用

这将复制目标/依赖项中的所有依赖项

如果要排除测试范围依赖项

mvn install dependency:copy-dependencies -DexcludeScope=test

在本地运行
mvn clean install
后,您能否验证
javaee-web-api-7.0.jar
是否存在于您的
target/dependency
目录中?@Malax:非常感谢您的回答,并对延迟回复表示抱歉。我已签入文件夹目标。。。javaee-web-api-7.0.jar在运行“mvn清洁安装”后不在该文件夹中。。。我怎样才能改变它?你能展示一下你定义JEE API的
部分吗?非常感谢你的回答。。。我认为这就是解决办法。不幸的是,我现在不能确定,因为现在——即使在本地运行应用程序(几周前还可以正常运行)——我也会收到另一条错误消息。对于另一个问题,我在这里问了一个单独的问题:我为另一个问题开始了500英镑的悬赏()@staid_progress补充了答案。请查收。我希望有帮助。非常感谢你对另一个问题的回答。。。在你之前有人给出了同样的答案所以我不得不把赏金给他。。。但我会给你额外的250分以上提供的答案。。。我仍然不能确定你上面的答案是否解决了问题,因为现在我突然得到了一个404错误。。。但我现在批准了答案,所以你肯定会得到250分。。。一旦我知道答案解决了我的问题,你将获得250分。我在这里创建了一个关于404错误的新问题:
mvn install dependency:copy-dependencies -DexcludeScope=test