problem with <jee:local-slsb> & <jee:remote-slsb>
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.