繁体   English   中英

Heroku 部署构建失败 Java Spring 项目:package java.net.http 不存在

[英]Heroku deployment build failure Java Spring project : package java.net.http does not exist

我一直在尝试在 Heroku 上部署 java spring 项目,但我一直收到此错误。 该项目是一个跟踪器,它使用在线 csv 文件中的一些数据并使用这些信息显示数据。 它还每天更新信息。 当我使用 http://localhost:8080/ 在本地托管它时,它工作正常。 这是错误消息。

       [ERROR] COMPILATION ERROR : 

       [INFO] -------------------------------------------------------------

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[15,21] package java.net.http does not exist

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[16,21] package java.net.http does not exist

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[17,21] package java.net.http does not exist

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[46,9] cannot find symbol

         symbol:   class HttpClient

         location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[46,29] cannot find symbol

         symbol:   variable HttpClient

         location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[47,9] cannot find symbol

         symbol:   class HttpClient

         location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[47,30] cannot find symbol

         symbol:   variable HttpClient

         location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[48,9] cannot find symbol

         symbol:   class HttpRequest

         location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[48,30] cannot find symbol

         symbol:   variable HttpRequest

         location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[49,9] cannot find symbol

         symbol:   class HttpRequest

         location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[49,31] cannot find symbol

         symbol:   variable HttpRequest

         location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[51,9] cannot find symbol

         symbol:   class HttpResponse

         location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[51,76] package HttpResponse does not exist

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[52,9] cannot find symbol

         symbol:   class HttpResponse

         location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[52,78] package HttpResponse does not exist

       [INFO] 15 errors 

       [INFO] -------------------------------------------------------------

       [INFO] ------------------------------------------------------------------------

       [INFO] BUILD FAILURE

       [INFO] ------------------------------------------------------------------------

       [INFO] Total time:  12.179 s

       [INFO] Finished at: 2020-09-20T05:56:34Z

       [INFO] ------------------------------------------------------------------------

       [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project Corona-Track: Compilation failure: Compilation failure: 

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[15,21] package java.net.http does not exist

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[16,21] package java.net.http does not exist

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[17,21] package java.net.http does not exist

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[46,9] cannot find symbol

       [ERROR]   symbol:   class HttpClient

       [ERROR]   location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[46,29] cannot find symbol

       [ERROR]   symbol:   variable HttpClient

       [ERROR]   location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[47,9] cannot find symbol

       [ERROR]   symbol:   class HttpClient

       [ERROR]   location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[47,30] cannot find symbol

       [ERROR]   symbol:   variable HttpClient

       [ERROR]   location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[48,9] cannot find symbol

       [ERROR]   symbol:   class HttpRequest

       [ERROR]   location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[48,30] cannot find symbol

       [ERROR]   symbol:   variable HttpRequest

       [ERROR]   location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[49,9] cannot find symbol

       [ERROR]   symbol:   class HttpRequest

       [ERROR]   location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[49,31] cannot find symbol

       [ERROR]   symbol:   variable HttpRequest

       [ERROR]   location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[51,9] cannot find symbol

       [ERROR]   symbol:   class HttpResponse

       [ERROR]   location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[51,76] package HttpResponse does not exist

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[52,9] cannot find symbol

       [ERROR]   symbol:   class HttpResponse

       [ERROR]   location: class com.Corona.CoronaTrack.services.CoronaDataService

       [ERROR] /tmp/build_764c076e_/src/main/java/com/Corona/CoronaTrack/services/CoronaDataService.java:[52,78] package HttpResponse does not exist

       [ERROR] -> [Help 1]

       [ERROR] 

       [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

       [ERROR] Re-run Maven using the -X switch to enable full debug logging.

       [ERROR] 

       [ERROR] For more information about the errors and possible solutions, please read the following articles:

       [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

 !     ERROR: Failed to build app with Maven

       We're sorry this build is failing! If you can't find the issue in application code,

       please submit a ticket so we can help: https://help.heroku.com/

 !     Push rejected, failed to compile Java app.

 !     Push failed 

这是它一直说有问题的位置

package com.Corona.CoronaTrack.services;


import com.Corona.CoronaTrack.models.Stats;
import com.Corona.CoronaTrack.models.Stats2;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVRecord;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;
import java.io.IOException;
import java.io.StringReader;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.ArrayList;
import java.util.List;

@Service
public class CoronaDataService {

    private static String VirusDataURL = "https://raw.githubusercontent.com/nytimes/covid-19-data/master/us-states.csv";
    private static String VirusDataURL2= "https://raw.githubusercontent.com/nytimes/covid-19-data/master/us.csv";

    private List<Stats> allStats = new ArrayList<>();

    public List<Stats> getAllStats() {
        return allStats;
    }

    private List<Stats2> allStats2 = new ArrayList<>();

    public List<Stats2> getAllStats2() {
        return allStats2;
    }

    @PostConstruct
    @Scheduled(cron = "* * 1 * * *")
    public void GetCornonaData() throws IOException, InterruptedException {
        List<Stats> newStats = new ArrayList<>();
        List<Stats2> newStats2 = new ArrayList<>();


        HttpClient client = HttpClient.newHttpClient();
        HttpClient client2 = HttpClient.newHttpClient();
        HttpRequest request= HttpRequest.newBuilder().uri(URI.create(VirusDataURL)).build();
        HttpRequest request2= HttpRequest.newBuilder().uri(URI.create(VirusDataURL2)).build();

        HttpResponse<String> httpResponse=client.send(request, HttpResponse.BodyHandlers.ofString());
        HttpResponse<String> httpResponse2=client.send(request2, HttpResponse.BodyHandlers.ofString());

        StringReader  csvBody2 = new StringReader(httpResponse2.body());
        Iterable<CSVRecord> records2 = CSVFormat.DEFAULT.withFirstRecordAsHeader().parse(csvBody2);
        for (CSVRecord record2 : records2) {
            Stats2 locationStat2 = new Stats2();
            
            locationStat2.setTotalAmountOfCases(record2.get(record2.size()-2));

            
            locationStat2.setTotalAmountOfDeaths(record2.get(record2.size()-1));
           
            newStats2.add(locationStat2);
        }
        this.allStats2 = newStats2;


        StringReader  csvBody = new StringReader(httpResponse.body());
        Iterable<CSVRecord> records = CSVFormat.DEFAULT.withFirstRecordAsHeader().parse(csvBody);
        for (CSVRecord record : records) {
            Stats locationStat = new Stats();
            locationStat.setDate(record.get("date"));
            locationStat.setState(record.get("state"));
            locationStat.setCases(record.get("cases"));
            locationStat.setDeaths(record.get("deaths"));
            newStats.add(locationStat);
        }
        this.allStats = newStats;
    }
}

我知道这不是最好的代码。 这是我使用 spring 的第一个项目。如果您对部署我的项目的更好方法有任何建议,我将不胜感激。 感谢您提供的任何帮助,谢谢。

java.net.http已在 Java 11 中引入,您可能在本地使用。

Heroku 默认提供 Java 8 运行时,但是您可以设置所需的 Java 版本。 在项目的根目录中创建一个文件system.properties ,其中包含:

java.runtime.version=11

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM