我如何防止 java args[] 从 dynamodb table 返回空列表?
How do i prevent java args[] from returning an empty list from a dynamodb table?
我有一个名为 environments
的 dynamodb table 和 table 中的一个名为 env_name
的列
当运行命令行中的class:
java -cp target/sharedlibraries.jar com.mimo.sharedlibraries.fetchCMDBtable environments env_name
我得到一个空列表,而不是一个充满环境名称的列表。
这是我正在使用的class:
public class fetchCMDBtable {
public static void main(String[] args)throws Exception {
//default values
if (args.length != 2) {
System.out.println("Not enough args!");
System.exit(1);
}
String tableName = args[0]; //environments
String tableColumn = args[1]; //env_name
DynamoDbClient client = DynamoDbClient.builder()
.region(Region.EU_WEST_1)
.build();
CMDB(client,tableName,tableColumn);
System.out.println(CMDB(client, tableName, tableColumn));
client.close();
}
public static List<String> CMDB(DynamoDbClient client,String tableName, String tableColumn) throws Exception {
List<String> ListValues = new ArrayList<>();
try {
ScanRequest scanRequest = ScanRequest.builder()
.tableName(tableName)
.build();
ScanResponse response = client.scan(scanRequest);
for (Map<String, AttributeValue> item : response.items()){
Set<String> keys = item.keySet();
for (String key : keys) {
if (key == tableColumn) {
ListValues.add(item.get(key).s()) ;
}
}
}
} catch (DynamoDbException e){
e.printStackTrace();
System.exit(1);
}
return ListValues;
}
}
尝试使用 key.equals(tableColumn)
而不是 key == tableColumn
我有一个名为 environments
的 dynamodb table 和 table 中的一个名为 env_name
的列
当运行命令行中的class:
java -cp target/sharedlibraries.jar com.mimo.sharedlibraries.fetchCMDBtable environments env_name
我得到一个空列表,而不是一个充满环境名称的列表。
这是我正在使用的class:
public class fetchCMDBtable {
public static void main(String[] args)throws Exception {
//default values
if (args.length != 2) {
System.out.println("Not enough args!");
System.exit(1);
}
String tableName = args[0]; //environments
String tableColumn = args[1]; //env_name
DynamoDbClient client = DynamoDbClient.builder()
.region(Region.EU_WEST_1)
.build();
CMDB(client,tableName,tableColumn);
System.out.println(CMDB(client, tableName, tableColumn));
client.close();
}
public static List<String> CMDB(DynamoDbClient client,String tableName, String tableColumn) throws Exception {
List<String> ListValues = new ArrayList<>();
try {
ScanRequest scanRequest = ScanRequest.builder()
.tableName(tableName)
.build();
ScanResponse response = client.scan(scanRequest);
for (Map<String, AttributeValue> item : response.items()){
Set<String> keys = item.keySet();
for (String key : keys) {
if (key == tableColumn) {
ListValues.add(item.get(key).s()) ;
}
}
}
} catch (DynamoDbException e){
e.printStackTrace();
System.exit(1);
}
return ListValues;
}
}
尝试使用 key.equals(tableColumn)
而不是 key == tableColumn