I am setting up a microservice that accesses accumulo. It's a specialized
thing of limited scope. I do need to get it to create tables (Code is
below.).
- Java 17
- SpringBoot running Jetty
- Postman
In the below code bit, the tableName is a string "patient×´. When I run it,
I get an error message:
org.apache.accumulo.core.client.AccumuloException: Input byte[] should at
least have 2 bytes for base64 bytes
at
org.apache.accumulo.core.clientImpl.TableOperationsImpl.doFateOperation(TableOperationsImpl.java:413)
at
org.apache.accumulo.core.clientImpl.TableOperationsImpl.doFateOperation(TableOperationsImpl.java:365)
at
org.apache.accumulo.core.clientImpl.TableOperationsImpl.doTableFateOperation(TableOperationsImpl.java:1803)
at
org.apache.accumulo.core.clientImpl.TableOperationsImpl.create(TableOperationsImpl.java:254)
at
org.apache.accumulo.core.clientImpl.TableOperationsImpl.create(TableOperationsImpl.java:226)
at
d4m.acc.microservice.D4MACCController.createTable(D4MACCController.java:58)
Q: Why it seems all is quite correct? The log message is correct. The
return value is correct.
@PostMapping("/create")
public String createTable(@RequestBody String tableName) {
TableOperations ops = client.tableOperations();
try {
LOG.info("create=" + tableName);
ops.create(tableName);
} catch (AccumuloException | AccumuloSecurityException |
TableExistsException e) {
e.printStackTrace();
}
return tableName;
}--
Thanks
My software always runs perfectly in the end. If it is not perfect, it is
not yet the end.
Geoffry Roberts