【发布时间】:2014-12-10 18:56:36
【问题描述】:
在我看来,GoogleAppEngine 不支持 Java 的“NetworkInterface”——鉴于 GAE 对 Java .net 的支持有限,我想这并不奇怪。但是,我确实想使用 BSON Java 库将我的字符串转换为 BSON 对象(ObjectID)。问题是它使用以下内容作为 ObjectId 生成的一部分:
StringBuilder sb = new StringBuilder();
Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces();
while ( e.hasMoreElements() ){
NetworkInterface ni = e.nextElement();
sb.append( ni.toString() );
}
machinePiece = sb.toString().hashCode() << 16;
这在使用 GoogleAppEngine 时显然存在问题。有谁知道我可以在上述情况下使用 GAE 支持的 NetworkInterface 的替代方法?
这真的让我把头发扯掉了!
作为参考,有问题的代码出现在以下文件的第 356 行和第 362 行之间: https://github.com/mongodb/mongo-java-driver/blob/2.11.x/src/main/org/bson/types/ObjectId.java
【问题讨论】:
-
作为一种解决方法,您可以尝试使用 UUID 实例而不是 ObjectId 作为您的唯一标识符。否则,请通过jira.mongodb.org/browse/JAVA 报告问题。
标签: java mongodb google-app-engine bson network-interface