gpt4 book ai didi

java - Heroku 本地应用程序测试控制台中缺少 System.out

转载 作者:行者123 更新时间:2023-11-30 07:48:45 25 4
gpt4 key购买 nike

我尝试在很多地方搜索为什么会发生这种情况,但我无法弄清楚。有对 System.out.printf(...); 的调用当执行 main 时,终端中根本就缺少这些内容。另一个奇怪的地方是每次都不相同。我可以连续运行应用程序两次,无需更改代码或重新构建,并且输出缺少不同的 System.out 调用。

这是一个 Maven 构建。我有三个对象。该类包含 main、一个 User 对象和一个 DB 访问对象。

主要对象是使用连接来构建和发送电子邮件。 Db 对象正在使用连接来访问 psql 本地数据库。

以下是一些显示问题的代码片段。

public static List<User_Search_Profile> getAllTable(String tableName, PrintStream out){
List<User_Search_Profile> users = new ArrayList<User_Search_Profile>();
Connection connection = Database_Access.establishConnection();
try{
ResultSet resultTable = Database_Access.generateResultSet("SELECT * FROM " + tableName, connection);
ResultSetMetaData resultTableMetaData = resultTable.getMetaData();
ResultSet abvTable = Database_Access.generateResultSet("SELECT * FROM CLSEARCHTABLE", connection);
connection.close();

int columns = resultTableMetaData.getColumnCount();
out.printf("Columns: " + columns + "%n");

String [] labels = new String[columns];
for(int i = 1; i <= columns; i++){
labels[i-1] = resultTableMetaData.getColumnLabel(i).toString();
out.printf("Label: " + labels[i-1] + "%n");

}

Map<String, String> dbVals = new HashMap<String, String>();

resultTable.first();
while(!resultTable.isAfterLast()){

for(String s: labels){
dbVals.put(s, resultTable.getString(s));
}
User_Search_Profile user = new User_Search_Profile(dbVals.get("region"), dbVals.get("category"),
dbVals.get("name"), dbVals.get("email"), dbVals.get("search"), dbVals.get("lasthash"));
users.add(user);
resultTable.next();


}
resultTable.close();


abvTable.first();
for(User_Search_Profile user: users){

while(!abvTable.isAfterLast()){
if(abvTable.getString(1) == user.getCategory()){
user.setCategoryAbv(abvTable.getString(2));
}
if(abvTable.getString(1) == user.getRegion()){
user.setRegionAbv(abvTable.getString(2));
}
abvTable.next();

}
user.printUser(out); //Calls the user object print
}

}

以及用户对象部分:

    public void printUser(PrintStream out){
out.printf("--User--%n%n");
out.printf("Name: " + name + "%n");
out.printf("Email: " + email + "%n");
out.printf("Reg: " + region + "%n");
out.printf("Abv: " + regionAbv + "%n");
out.printf("Cat: " + category + "%n");
out.printf("Abv: " + categoryAbv + "%n");
out.printf("Search: " + searchString + "%n");
out.printf("Hash: " + lastHash + "%n");
//out.flush();

}

这是连续运行的输出:

james ~/heroku/java-getting-started $ heroku local worker
forego | starting worker.1 on port 5100
worker.1 | Columns: 6
worker.1 | Label: region
worker.1 | Label: category
worker.1 | Label: name
worker.1 | Label: email
worker.1 | Label: search
worker.1 | Label: lasthash
worker.1 | --User--
worker.1 |
worker.1 | Name: James
worker.1 | Email: ************
worker.1 | Reg: Clackamas County
worker.1 | Abv: null
worker.1 | Cat: Jobs
worker.1 | Abv: null
worker.1 | Search: Web Developer
worker.1 | Hash: ccdd352048003f7feae23004c5df2caa
james ~/heroku/java-getting-started $ heroku local worker
forego | starting worker.1 on port 5100
worker.1 | Columns: 6
worker.1 | Label: region
worker.1 | Label: category
worker.1 | Label: name
worker.1 | Label: email
worker.1 | Label: search
worker.1 | Label: lasthash
worker.1 | --User--
worker.1 |
worker.1 | Name: James
worker.1 | Email: **********
james ~/heroku/java-getting-started $ heroku local worker
forego | starting worker.1 on port 5100
worker.1 | Columns: 6
worker.1 | Label: region
worker.1 | Label: category
worker.1 | Label: name
worker.1 | Label: search
worker.1 | Label: lasthash
worker.1 | --User--
worker.1 |
worker.1 | Name: James
worker.1 | Email: *********** // not encrypted just personal
worker.1 |
worker.1 | Abv: null
worker.1 | Cat: Jobs
james ~/heroku/java-getting-started $

我非常困惑。似乎存在缓冲区问题,或者输出去了其他地方,但该死的如果我知道在哪里。任何帮助将不胜感激,因为调试几乎不可能,我无法验证输出。

最佳答案

问题出在底层forego工具,heroku local 使用它来运行您的流程。

我认为工具带仍然安装 foreman,因此您可以尝试运行 foreman start worker

最后,您始终可以手动运行 Procfile 命令,但您也需要手动设置环境变量。

关于java - Heroku 本地应用程序测试控制台中缺少 System.out,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33562110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com