biz çalışma süresini erişmek istediğiniz tomcat motorunda bazı bilgiler vardır, bu yüzden bizim uygulama bağlamında şu var (this blog post bu var): Bir denetleyici olarakBir proxy'yi bir hizmete nasıl enjekte edersiniz?
<bean id="tomcatEngineProxy" class="org.springframework.jmx.access.MBeanProxyFactoryBean">
<property name="objectName" value="Catalina:type=Engine" />
<property name="proxyInterface" value="org.apache.catalina.Engine" />
<property name="useStrictCasing" value="false" />
</bean>
, biz o zaman bunu autowired böyle: o sınıf inşa anda bize kullanılamadığı için
@Autowired
private MBeanProxyFactoryBean tomcatEngineProxy = null;
Biz, blog yazısında gibi org.apache.catalina.Engine
tel olamaz. Farklı makinelerde çalışan tüm farklı tomcat sürümleriyle sadece çalışma zamanında kullanılabilir.
<bean id="myService" class="com.foo.bar.MyServiceImpl">
<constructor-arg ref="tomcatEngineProxy" />
</bean>
Ve sınıf şuna benzer:
public class MyServiceImpl implements MyService
{
public MyServiceImpl(MBeanProxyFactoryBean tomcatEngineProxy) throws Exception
{
//stuff with the proxy
}
.....
}
Bunu yaptığınızda, aşağıdaki hatayı alıyorum:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'myService' defined in ServletContext resource [/WEB-INF/spring/root-context.xml]: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.springframework.jmx.access.MBeanProxyFactoryBean]: Could not convert constructor argument value of type [$Proxy44] to required type [org.springframework.jmx.access.MBeanProxyFactoryBean]: Failed to convert value of type '$Proxy44 implementing org.apache.catalina.Engine,org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised' to required type 'org.springframework.jmx.access.MBeanProxyFactoryBean'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [$Proxy44 implementing org.apache.catalina.Engine,org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised] to required type [org.springframework.jmx.access.MBeanProxyFactoryBean]: no matching editors or conversion strategy found
temelde hiçbir şey bilmeden Vekillerin nasıl çalıştığı ve nasıl kullanılacağı ile ilgili olarak, bu çalışmayı nasıl yapacağımızdan emin değilim. Eşleştirecek kurucu argümde kullanabileceğim bir bildirim var mı? Denetleyicideki @Autowire ile çalışmayan yapıcı arg arasında ne farklıdır?
Mükemmel! Bir çekicilik gibi çalıştı. Bu sözdizimini daha önce görmedim. Bunu şöyle yapmam gerekiyordu: ', ancak bu XML'i mutlu etmenin bir meselesi. Teşekkürler! –
dnc253
np. Sadece bir EL ifadesinde kırılmış olarak denemeyin :) Bunun için ilkbaharda bir hatam var. – Matt