Verwenden Sie keine dedizierten Spring EJB-Zugriffsklassen für die Suche nach EJB

In Spring Framework 6.0 wurde der dedizierte EJB-Zugriff entfernt. In Spring Framework 5.x erfolgt der EJB-Zugriff über die LocalStatelessSessionProxyFactoryBean, SimpleRemoteStatelessSessionProxyFactoryBean, LocalSlsbInvokerInterceptor und SimpleRemoteSlsbInvokerInterceptor klassen, die in der org.springframework.ejb.access .

Diese Klassen können in Spring XML-Dateien referenziert werden, wie z.B application-config.xml.

Hier ist ein Beispiel für einen solchen Anwendungsfall:

<Bohne id="myEjb" class="org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean">

Sie können auch in Java Dateien wie folgt referenziert werden:


import org.springframework.ejb.access.*;	
@Bean
public SimpleRemoteStatelessSessionProxyFactoryBean myEjb() {
    SimpleRemoteStatelessSessionProxyFactoryBean factory = new SimpleRemoteStatelessSessionProxyFactoryBean();
}

Diese Regel kennzeichnet die Verwendung der org.springframework.ejb.access paket in Java .class dateien oder .xml Dateien. Für Spring 6.0 verwenden Sie JNDI direkt über JndiObjectFactoryBean in Java Dateien oder jee:jndi-lookup LinkedIn .xml Dateien.

Hier ist ein Beispiel mit JndiObjectFactoryBean:


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jndi.JndiObjectFactoryBean;
import com.example.ejb.MyRemoteBean;
@Configuration
public class EjbJndiConfig {

    @Bean
    public JndiObjectFactoryBean myRemoteEjb() {
        JndiObjectFactoryBean jndiBean = new JndiObjectFactoryBean();
        jndiBean.setJndiName("java:global/myApp/MyRemoteBean!com.example.ejb.MyRemoteBean");
        jndiBean.setProxyInterface(MyRemoteBean.class);
        jndiBean.setLookupOnStartup(false);  // delay lookup if needed
        return jndiBean;
    }
}

Hier ist ein Beispiel mit jee-jndi-lookup:

<beans xmlns=" http://www.springframework.org/schema/beans " xmlns:jee=" http://www.springframework.org/schema/jee " xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance ".... <jee:jndi-lookup id="myEjb" jndi-name="java:global/myApp/MyRemoteBean!com.example.ejb.MyBean" proxy-interface="com.example.ejb.MyBean" /> </beans>

Weitere Informationen finden Sie in den folgenden Quellen: