我正在尝试使用一致性构建一个简单的缓存应用程序。我能够通过命令行(cmd)从缓存中调出服务和推送或弹出值。但是,当我尝试使用Java代码做同样的事情时,我得到以下错误:空
线程"main"异常
java.lang.NullPointerExceptioncom.learn.coherence.main.TestCacheMainOne.main (TestCacheMainOne.java: 14)
代码相当简单和小。例外的行是
NamedCache cache = CacheFactory.getCache("VirtualCache");
import com.tangosol.net.CacheFactory;
import com.tangosol.net.NamedCache;
public class TestCacheMainOne {
public static void main(String[] args) {
NamedCache cache = CacheFactory.getCache("VirtualCache");
System.out.println(cache);
String key = "key1";
String value = "value1";
cache.put(key, value);
String receivedValue = (String) cache.get(key);
System.out.println(receivedValue);
}
}
您正在尝试构建客户端应用程序,可能您在类路径中丢失了配置文件。
看一下这个指南。
Oracle Coherence Guide步骤2:配置客户端
NullPointerException at cache。put(key, value)表示CacheFactory找不到"VirtualCache"缓存。检查coherence-cache-config.xml,确保配置包含如下内容:
<caching-scheme-mapping>
<cache-mapping>
<cache-name>VirtualCache</cache-name>
<scheme-name>YourScheme</scheme-name>
</cache-mapping>
</caching-scheme-mapping>
<caching-schemes>
<remote-cache-scheme>
<scheme-name>YourScheme</scheme-name>
<service-name>ExtendTcpCacheService</service-name>
<initiator-config>
<tcp-initiator>
<remote-addresses>
<socket-address>
<address>your_coherence_server</address>
<port>xxxx</port>
</socket-address>
</remote-addresses>
...
</tcp-initiator>
...
</initiator-config>
...
</remote-cache-scheme>
...
</caching-schemes>
您还应该检查coherence-factory-config.xml,它包含coherence日志文件的路径,其中包含服务器连接状态。