Oracle一致性缓存不工作-给出NPE



我正在尝试使用一致性构建一个简单的缓存应用程序。我能够通过命令行(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日志文件的路径,其中包含服务器连接状态。

最新更新