- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 Hazelcast SqlPredicate 在 map 上执行简单的搜索操作。似乎遇到了一些我无法解决的错误。这是我针对 Hazelcast Cloud 使用的示例程序。
程序连接集群通过获取我的测试键值对确认连接成功。然后,当我应用 SQLPredicate 时,它会抛出错误。我目前在 Hazelcast 中只有几天的时间,因此不确定我的代码出了什么问题。
package com.bsfi.java.client;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.Set;
import java.util.UUID;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.hazelcast.client.HazelcastClient;
import com.hazelcast.client.config.ClientConfig;
import com.hazelcast.client.spi.impl.discovery.HazelcastCloudDiscovery;
import com.hazelcast.client.spi.properties.ClientProperty;
import com.hazelcast.config.GroupConfig;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.core.IMap;
import com.hazelcast.query.SqlPredicate;
import java.io.Serializable;
class SampleHazelObject implements Serializable {
private static final long serialVersionUID = 1L;
private String schemaName;
private String sourceId;
private String sourceData;
private String timestamp;
public SampleHazelObject(String schemaName, String sourceId, String sourceData, String timestamp) {
this.sourceId = sourceId;
this.schemaName = schemaName;
this.sourceData = sourceData;
this.timestamp = timestamp;
}
public String getSourceId() {
return sourceId;
}
public void setSourceId(String sourceId) {
this.sourceId = sourceId;
}
public String getSchemaName() {
return schemaName;
}
public void setSchemaName(String schemaName) {
this.schemaName = schemaName;
}
public String getSourceData() {
return sourceData;
}
public void setSourceData(String sourceData) {
this.sourceData = sourceData;
}
public String getTimestamp() {
return timestamp;
}
public void setTimestamp(String timestamp) {
this.timestamp = timestamp;
}
}
public class ErrorDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
String clusterName = "hazelhack";
String clusterPassword = "XXXXXXXXXX";
String discoveryToken = "XXXXXXXXXXX";
ClientConfig config = new ClientConfig();
config.setGroupConfig(new GroupConfig(clusterName, clusterPassword));
config.setProperty("hazelcast.client.statistics.enabled","true");
config.setProperty(ClientProperty.HAZELCAST_CLOUD_DISCOVERY_TOKEN.getName(), discoveryToken);
config.setProperty(HazelcastCloudDiscovery.CLOUD_URL_BASE_PROPERTY.getName(), "https://coordinator.hazelcast.cloud");
HazelcastInstance client = HazelcastClient.newHazelcastClient(config);
IMap<String, SampleHazelObject> mapEntity = client.getMap("SchemaEntity");
// Adding a key value here
mapEntity.put("keytest", new SampleHazelObject("Entity","9999999999","test data",new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date())));
System.out.println("Data....: "+mapEntity.get("keytest").getSourceId());
if(mapEntity.get("keytest").getSourceId().equals("9999999999")) {
System.out.println("Connection Successful!");
System.out.println("Now, `map` as one Entity data.");
}
else {
throw new RuntimeException("Connection failed, check your configuration.");
}
// Writing completed. Let us try some lookup and querying on the data
Collection<SampleHazelObject> objHazelList = mapEntity.values(new SqlPredicate("SourceId = '9999999999'" ));
for(SampleHazelObject hazelObj: objHazelList) {
System.out.println("value=" + hazelObj.getSourceData());
}
}
}
class loader for SampleHazelObject : sun.misc.Launcher$AppClassLoader@73d16e93
Oct 23, 2019 7:00:37 AM com.hazelcast.client.HazelcastClient
INFO: hz.client_0 [hazelhack] [3.12.2] A non-empty group password is configured for the Hazelcast client. Starting with Hazelcast version 3.11, clients with the same group name, but with different group passwords (that do not use authentication) will be accepted to a cluster. The group password configuration will be removed completely in a future release.
Oct 23, 2019 7:00:38 AM com.hazelcast.client.spi.ClientInvocationService
INFO: hz.client_0 [hazelhack] [3.12.2] Running with 2 response threads, dynamic=false
Oct 23, 2019 7:00:38 AM com.hazelcast.core.LifecycleService
INFO: hz.client_0 [hazelhack] [3.12.2] HazelcastClient 3.12.2 (20190802 - e34b163) is STARTING
Oct 23, 2019 7:00:38 AM com.hazelcast.core.LifecycleService
INFO: hz.client_0 [hazelhack] [3.12.2] HazelcastClient 3.12.2 (20190802 - e34b163) is STARTED
Oct 23, 2019 7:00:38 AM com.hazelcast.client.connection.nio.ClusterConnectorService
INFO: hz.client_0 [hazelhack] [3.12.2] Trying to connect to cluster with name: hazelhack
Oct 23, 2019 7:00:40 AM com.hazelcast.client.connection.nio.ClusterConnectorService
INFO: hz.client_0 [hazelhack] [3.12.2] Trying to connect to [100.103.97.104]:31629 as owner member
Oct 23, 2019 7:00:42 AM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [hazelhack] [3.12.2] Setting ClientConnection{alive=true, connectionId=1, channel=NioChannel{/192.168.0.104:50119->/3.92.127.167:31629}, remoteEndpoint=[100.103.97.104]:31629, lastReadTime=2019-10-23 07:00:42.092, lastWriteTime=2019-10-23 07:00:41.690, closedTime=never, connected server version=3.12.2} as owner with principal ClientPrincipal{uuid='19d729c6-99c9-4a0e-8a5d-69e6e69c4d4c', ownerUuid='ff72f0dc-664e-4b81-876f-3f4be292136d'}
Oct 23, 2019 7:00:42 AM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [hazelhack] [3.12.2] Authenticated with server [100.103.97.104]:31629, server version:3.12.2 Local address: /192.168.0.104:50119
Oct 23, 2019 7:00:42 AM com.hazelcast.client.spi.impl.ClientMembershipListener
INFO: hz.client_0 [hazelhack] [3.12.2]
Members [1] {
Member [100.103.97.104]:31629 - ff72f0dc-664e-4b81-876f-3f4be292136d
}
Oct 23, 2019 7:00:42 AM com.hazelcast.core.LifecycleService
INFO: hz.client_0 [hazelhack] [3.12.2] HazelcastClient 3.12.2 (20190802 - e34b163) is CLIENT_CONNECTED
Oct 23, 2019 7:00:42 AM com.hazelcast.internal.diagnostics.Diagnostics
INFO: hz.client_0 [hazelhack] [3.12.2] Diagnostics disabled. To enable add -Dhazelcast.diagnostics.enabled=true to the JVM arguments.
Oct 23, 2019 7:00:42 AM com.hazelcast.client.impl.statistics.Statistics
INFO: Client statistics is enabled with period 3 seconds.
Data....: 9999999999
Connection Successful!
Now, `map` as one Entity data.
Exception in thread "main" com.hazelcast.nio.serialization.HazelcastSerializationException: java.lang.ClassNotFoundException: Failed to load class com.bsfi.java.client.SampleHazelObject from other members
at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$JavaSerializer.read(JavaDefaultSerializers.java:88)
at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$JavaSerializer.read(JavaDefaultSerializers.java:77)
at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48)
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toObject(AbstractSerializationService.java:187)
at com.hazelcast.query.impl.CachedQueryEntry.getValue(CachedQueryEntry.java:75)
at com.hazelcast.query.impl.CachedQueryEntry.getTargetObject(CachedQueryEntry.java:108)
at com.hazelcast.query.impl.QueryableEntry.extractAttributeValue(QueryableEntry.java:105)
at com.hazelcast.query.impl.QueryableEntry.getAttributeValue(QueryableEntry.java:61)
at com.hazelcast.query.impl.predicates.AbstractPredicate.readAttributeValue(AbstractPredicate.java:145)
at com.hazelcast.query.impl.predicates.AbstractPredicate.apply(AbstractPredicate.java:62)
at com.hazelcast.map.impl.query.PartitionScanRunner.run(PartitionScanRunner.java:101)
at com.hazelcast.map.impl.query.HDPartitionScanExecutor.execute(HDPartitionScanExecutor.java:22)
at com.hazelcast.map.impl.query.QueryRunner.runPartitionIndexOrPartitionScanQueryOnGivenOwnedPartition(QueryRunner.java:192)
at com.hazelcast.map.impl.query.HDQueryPartitionOperation.runInternal(HDQueryPartitionOperation.java:28)
at com.hazelcast.map.impl.operation.HDMapOperation.run(HDMapOperation.java:88)
at com.hazelcast.spi.Operation.call(Operation.java:170)
at com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.call(OperationRunnerImpl.java:210)
at com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:199)
at com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process(OperationThread.java:147)
at com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process(OperationThread.java:125)
at com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.run(OperationThread.java:110)
at ------ submitted from ------.(Unknown Source)
at com.hazelcast.spi.impl.operationservice.impl.InvocationFuture.resolve(InvocationFuture.java:126)
at com.hazelcast.spi.impl.operationservice.impl.InvocationFuture.resolveAndThrowIfException(InvocationFuture.java:79)
at com.hazelcast.spi.impl.AbstractInvocationFuture.get(AbstractInvocationFuture.java:155)
at com.hazelcast.client.impl.protocol.task.map.AbstractMapQueryMessageTask.collectResultsFromMissingPartitions(AbstractMapQueryMessageTask.java:260)
at com.hazelcast.client.impl.protocol.task.map.AbstractMapQueryMessageTask.invokeOnMissingPartitions(AbstractMapQueryMessageTask.java:135)
at com.hazelcast.client.impl.protocol.task.map.AbstractMapQueryMessageTask.call(AbstractMapQueryMessageTask.java:99)
at com.hazelcast.client.impl.protocol.task.AbstractCallableMessageTask.processMessage(AbstractCallableMessageTask.java:35)
at com.hazelcast.client.impl.protocol.task.AbstractMessageTask.initializeAndProcessMessage(AbstractMessageTask.java:129)
at com.hazelcast.client.impl.protocol.task.AbstractMessageTask.run(AbstractMessageTask.java:109)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
at com.hazelcast.util.executor.HazelcastManagedThread.executeRun(HazelcastManagedThread.java:64)
at com.hazelcast.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:80)
at ------ submitted from ------.(Unknown Source)
at com.hazelcast.client.spi.impl.ClientInvocationFuture.resolveAndThrowIfException(ClientInvocationFuture.java:96)
at com.hazelcast.client.spi.impl.ClientInvocationFuture.resolveAndThrowIfException(ClientInvocationFuture.java:33)
at com.hazelcast.spi.impl.AbstractInvocationFuture.get(AbstractInvocationFuture.java:163)
at com.hazelcast.client.spi.ClientProxy.invoke(ClientProxy.java:252)
at com.hazelcast.client.proxy.ClientMapProxy.invokeWithPredicate(ClientMapProxy.java:1379)
at com.hazelcast.client.proxy.ClientMapProxy.values(ClientMapProxy.java:1367)
at com.bsfi.java.client.ErrorDemo.main(ErrorDemo.java:115)
Caused by: java.lang.ClassNotFoundException: Failed to load class com.bsfi.java.client.SampleHazelObject from other members
at com.hazelcast.internal.usercodedeployment.impl.ClassLocator.tryToGetClassFromRemote(ClassLocator.java:157)
at com.hazelcast.internal.usercodedeployment.impl.ClassLocator.handleClassNotFoundException(ClassLocator.java:95)
at com.hazelcast.internal.usercodedeployment.UserCodeDeploymentService.handleClassNotFoundException(UserCodeDeploymentService.java:89)
at com.hazelcast.internal.usercodedeployment.UserCodeDeploymentClassLoader.loadClass(UserCodeDeploymentClassLoader.java:57)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.hazelcast.nio.ClassLoaderUtil.tryLoadClass(ClassLoaderUtil.java:288)
at com.hazelcast.nio.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:252)
at com.hazelcast.nio.IOUtil$ClassLoaderAwareObjectInputStream.resolveClass(IOUtil.java:699)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1866)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1749)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2040)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1571)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$JavaSerializer.read(JavaDefaultSerializers.java:84)
at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$JavaSerializer.read(JavaDefaultSerializers.java:77)
at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48)
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toObject(AbstractSerializationService.java:187)
at com.hazelcast.query.impl.CachedQueryEntry.getValue(CachedQueryEntry.java:75)
at com.hazelcast.query.impl.CachedQueryEntry.getTargetObject(CachedQueryEntry.java:108)
at com.hazelcast.query.impl.QueryableEntry.extractAttributeValue(QueryableEntry.java:105)
at com.hazelcast.query.impl.QueryableEntry.getAttributeValue(QueryableEntry.java:61)
at com.hazelcast.query.impl.predicates.AbstractPredicate.readAttributeValue(AbstractPredicate.java:145)
at com.hazelcast.query.impl.predicates.AbstractPredicate.apply(AbstractPredicate.java:62)
at com.hazelcast.map.impl.query.PartitionScanRunner.run(PartitionScanRunner.java:101)
at com.hazelcast.map.impl.query.HDPartitionScanExecutor.execute(HDPartitionScanExecutor.java:22)
at com.hazelcast.map.impl.query.QueryRunner.runPartitionIndexOrPartitionScanQueryOnGivenOwnedPartition(QueryRunner.java:192)
at com.hazelcast.map.impl.query.HDQueryPartitionOperation.runInternal(HDQueryPartitionOperation.java:28)
at com.hazelcast.map.impl.operation.HDMapOperation.run(HDMapOperation.java:88)
at com.hazelcast.spi.Operation.call(Operation.java:170)
at com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.call(OperationRunnerImpl.java:210)
at com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:199)
at com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process(OperationThread.java:147)
at com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process(OperationThread.java:125)
at com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.run(OperationThread.java:110)
最佳答案
显示的所有代码都引用 SampleHazelObject,但日志消息表明它正在尝试加载 HazelObject,而我可以看到的任何地方都没有显示或引用该对象。
部署在云中的 jar 文件是否可能具有与客户端上运行的此类不同(重命名)的版本?
关于java - 在 Hazelcast 中构建 SqlPredicate 集合结果时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58505543/
我刚开始使用 HazelCast。我有一个键和值的映射,值是对象列表。我试图在 map 上使用 SqlPredicate 来过滤值。代码片段: private void testHazelCast()
我正在尝试使用 Hazelcast 来使用 SqlPredicate。代码片段: private void testHazelCast() { HazelcastInstance ha
hazelcast 映射上的 SQLPredicate 是否返回 Set(根据文档)或数组列表?我正在使用 v3.2.4 客户端和服务器。客户端连接到服务器并进行以下调用(这在单个服务器上有效,但现在
我正在尝试使用 SqlPredicate 谓词在 Hazelcast 中的 map 上执行搜索和聚合。当像下面这样搜索时,SqlPredicate 工作得很好: imap = //get map fr
我正在尝试使用 Hazelcast SqlPredicate 在 map 上执行简单的搜索操作。似乎遇到了一些我无法解决的错误。这是我针对 Hazelcast Cloud 使用的示例程序。 程序连接集
我是一名优秀的程序员,十分优秀!