Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java应用程序中的Memcached身份验证失败_Java_Heroku_Memcached_Spymemcached - Fatal编程技术网

Java应用程序中的Memcached身份验证失败

Java应用程序中的Memcached身份验证失败,java,heroku,memcached,spymemcached,Java,Heroku,Memcached,Spymemcached,我正忙着学习Heroku的Memcached Java教程: 我已经通过自制安装了Memcached,并将其启动和运行,添加了SpymeCached依赖项,并将XML配置添加到我的应用程序上下文中 问题是,当我的应用程序上下文在本地启动时出现以下身份验证失败时,我对MEMCACHE_用户名和MEMCACHE_密码环境变量的含义一无所知: 2013-04-21 18:22:52.108 INFO net.spy.memcached.MemcachedConnection: Added {QA s

我正忙着学习Heroku的Memcached Java教程:

我已经通过自制安装了Memcached,并将其启动和运行,添加了SpymeCached依赖项,并将XML配置添加到我的应用程序上下文中

问题是,当我的应用程序上下文在本地启动时出现以下身份验证失败时,我对MEMCACHE_用户名和MEMCACHE_密码环境变量的含义一无所知:

2013-04-21 18:22:52.108 INFO net.spy.memcached.MemcachedConnection:  Added {QA sa=localhost/127.0.0.1:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2013-04-21 18:22:52.127 INFO net.spy.memcached.MemcachedConnection:  Connection state changed for sun.nio.ch.SelectionKeyImpl@228ef305
2013-04-21 18:22:52.283 WARN net.spy.memcached.auth.AuthThread:  Authentication failed to localhost/127.0.0.1:11211
2013-04-21 18:22:52.398 WARN net.spy.memcached.auth.AuthThread:  Authentication failed to localhost/127.0.0.1:11211
2013-04-21 18:22:52.520 WARN net.spy.memcached.auth.AuthThread:  Authentication failed to localhost/127.0.0.1:11211 ...
提供用户名和密码的配置:

<bean id="plainCallbackHandler" class="net.spy.memcached.auth.PlainCallbackHandler">
   <constructor-arg index="0" value="${MEMCACHE_USERNAME}"/>
   <constructor-arg index="1" value="${MEMCACHE_PASSWORD}"/>
</bean>


我一定错过了一些很明显的东西。。。有任何指针吗?

如果您在本地运行应用程序,则
MEMCACHE\u用户名
MEMCACHE\u密码
都应为空(除非您在安装过程中进行了设置)。如果配置未处理空值,则可以使用前缀
MEMCACHE\u USERNAME=MEMCACHE\u PASSWORD=运行应用程序的命令运行应用程序

如果您使用Memcache加载项在Heroku上运行,您将获得环境变量,如
Memcache\u用户名
Memcache\u密码
、以及
Memcache\u服务器
,这些变量在安装加载项时自动设置


如果您自行托管Memcached服务器,则必须(或应该)设置一个SASL用户名和密码,以便在应用程序中进行配置。

您好,我也遇到了类似的问题,因为我没有设置SASL用户名和密码,因此当我删除配置时,错误消息消失

<bean name="defaultCache" class="com.google.code.ssm.CacheFactory">
    <property name="cacheName" value="default" />
    <property name="cacheClientFactory">
        <bean name="cacheClientFactory"
            class="com.google.code.ssm.providers.spymemcached.MemcacheClientFactoryImpl" />
    </property>
    <property name="addressProvider" ref="addressProvider" />
    <property name="configuration" ref="cacheFactoryConf" />
</bean>

<bean id="addressProvider" class="com.google.code.ssm.config.DefaultAddressProvider">
    <property name="address" value="${memcached.hosts}" />
</bean>
<bean id="cacheFactoryConf"
    class="com.google.code.ssm.providers.spymemcached.SpymemcachedConfiguration">
    <property name="consistentHashing" value="true" />
    <property name="useBinaryProtocol" value="true" />
    <property name="keyPrefixSeparator" value=".xxx." />
    <property name="useNameAsKeyPrefix" value="true" />
    <!-- 
    <property name="authDescriptor">
        <bean class="net.spy.memcached.auth.AuthDescriptor">
            <constructor-arg index="0">
                <value>PLAIN</value>
            </constructor-arg>
            <constructor-arg index="1">
                <bean class="net.spy.memcached.auth.PlainCallbackHandler">
                    <constructor-arg index="0">
                        <value>${memcached.username}</value>
                    </constructor-arg>
                    <constructor-arg index="1">
                        <value>${memcached.password}</value>
                    </constructor-arg>
                </bean>
            </constructor-arg>
        </bean>
    </property>
    -->
</bean>


你好,本杰明-谢谢你的回答。我尝试了你的建议,将MEMCACHE_用户名和MEMCACHE_密码设置为空,但没有成功。是否有办法查看凭据是什么,或者您认为我应该重新安装Memcached并重试?请尝试运行
telnet localhost 11211
以访问Memcached telnet接口。如果可以连接,请键入类似于
version
stats
的命令,以查看您是否具有访问权限。如果您得到响应,这意味着您的Memcached服务器正在运行并且没有身份验证-因此问题可能在别处。好的,所以我设法通过telnet连接,并成功运行了version和stats。你知道问题出在哪里吗?仅供参考,我确实通过自制软件重新安装了Memcached,它从不要求我输入用户名或密码,但我仍然无法通过身份验证。。。