I wrote a test EJb3 ear project to run on Jboss 6.
I can't understand why <jee:xxxxxx-slsb> not work, could someone tell my how to resolve this problem?
My application-context.xml is
Code:
<beans xmlns="http://www.springframework.org/schema/beans"
    ...>
    <jee:local-slsb id="storeLocal" jndi-name="StoreBean/local" business-interface="ejb3.bean.StoreLocal" resource-ref="false" 
        lookup-home-on-startup="true"/>
    <jee:remote-slsb id="sotreRemote" jndi-name="StoreBean/remote" business-interface="ejb3.bean.StoreRemote" resource-ref="false" 
        lookup-home-on-startup="true">
        <jee:environment>
            java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
            java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
            java.naming.provider.url=jnp://localhost:1399
        </jee:environment>
    </jee:remote-slsb>
and it's my controller code
Code:
@Controller
public class StoreController implements InitializingBean {
    private static Logger logger = LoggerFactory.getLogger(StoreController.class);
    @Autowired(required = false)
    @Qualifier("storeLocal")
    private StoreLocal storeLocal;
    @Autowired(required = false)
    @Qualifier("sotreRemote")
    private StoreRemote storeRemote;

    public void afterPropertiesSet() throws IllegalArgumentException, NamingException {
        logger.info("********************Autowired Local:{}:", storeLocal);
        if (storeLocal == null) {
            LocalStatelessSessionProxyFactoryBean lslsb = new LocalStatelessSessionProxyFactoryBean();
            lslsb.setBusinessInterface(StoreLocal.class);
            lslsb.setJndiName("StoreBean/local");
            lslsb.setResourceRef(false);
            lslsb.setLookupHomeOnStartup(true);
            lslsb.afterPropertiesSet();
            storeLocal = (StoreLocal) lslsb.getObject();
            logger.info("********************setupLocal:{}:", storeLocal);
        }
        logger.info("********************Autowired Remote:{}:", storeRemote);
        if (storeRemote == null) {
            SimpleRemoteStatelessSessionProxyFactoryBean sslsb = new SimpleRemoteStatelessSessionProxyFactoryBean();
            sslsb.setBusinessInterface(StoreRemote.class);
            sslsb.setJndiName("StoreBean/remote");
            sslsb.setLookupHomeOnStartup(true);
            sslsb.setResourceRef(false);
            Properties jndienv = new Properties();
            jndienv.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
            jndienv.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
            jndienv.put("java.naming.provider.url", "jnp://localhost:1099");
            sslsb.setJndiEnvironment(jndienv);
            sslsb.afterPropertiesSet();
            storeRemote = (StoreRemote) sslsb.getObject();
            logger.info("********************setup Remote:{}:", storeRemote);
        }
        logger.info("************************************");
    }
    ...
}
and output is
Code:
17:13:42,486 INFO  [STDOUT] 2012-06-13 17:13:42,486 [HDScanner] INFO  e.c.StoreController.afterPropertiesSet[38] - *****
***************Autowired Local:null:
17:13:42,517 INFO  [STDOUT]
17:13:42,548 INFO  [STDOUT] 2012-06-13 17:13:42,548 [HDScanner] INFO  e.c.StoreController.afterPropertiesSet[47] - *****
***************setup Local:Proxy to jboss.j2ee:jar=Ejb3-ejb-1.0-SNAPSHOT.jar,name=StoreBean,service=EJB3 implementing [in
terface ejb3.bean.StoreLocal]:
17:13:42,564 INFO  [STDOUT]
17:13:42,580 INFO  [STDOUT] 2012-06-13 17:13:42,580 [HDScanner] INFO  e.c.StoreController.afterPropertiesSet[49] - *****
***************Autowired Remote:null:
17:13:42,595 INFO  [STDOUT]
17:13:42,736 INFO  [STDOUT] 2012-06-13 17:13:42,736 [HDScanner] INFO  e.c.StoreController.afterPropertiesSet[63] - *****
***************setup Remote:Proxy to jboss.j2ee:jar=Ejb3-ejb-1.0-SNAPSHOT.jar,name=StoreBean,service=EJB3 implementing [i
nterface ejb3.bean.StoreRemote]:
17:13:42,751 INFO  [STDOUT]
17:13:42,767 INFO  [STDOUT] 2012-06-13 17:13:42,767 [HDScanner] INFO  e.c.StoreController.afterPropertiesSet[65] - *****
*******************************
Thnak you.