好吧,我终于想通了。这是一个 Spring 的东西,是那些很难找到的烦人的东西之一。
问题的核心是我的问题中提到的解决方案的这一部分:
<!-- Used to invoke a method in BasicCredentialsProvider. This has to be done this way as BasicCredentialsProvider does not take
provider and credentials in constructor or setter method. It has to set by invoking setCredentials() method and passing two arguments -->
<bean id="methodInvoke" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetObject"><ref local="credentialProvider" /> </property>
<property name="targetMethod" value="setCredentials"> </property>
<property name="arguments" >
<list>
<ref local="authScope" />
<ref local="credentials" />
</list>
</property>
</bean>
在为我的 Rest 服务创建第二组 Spring 定义时,我复制并粘贴了,没有意识到“methodInvoke”的重复 id 值会导致它只运行 1 次。
底线:如果 bean 不需要,不要给它一个 id - 它只会让你悲伤。在这种情况下,它没有在其他任何地方引用,因为它只是一个 MethodInvoker。