मैं JBoss पर @Remote EJB मिल गया है के रूप में 7, उपलब्ध निपटने नाम java:global/RandomEjb/DefaultRemoteRandom!pl.lechglowiak.ejbTest.RemoteRandom
द्वारा लिए उपलब्ध।स्प्रिंग <जेईई: रिमोट slsb> और JBoss AS7 - कोई EJB रिसीवर
स्टैंडअलोन ग्राहक <jee:remote-slsb>
सेम का उपयोग करता है वसंत आवेदन है। उस बीन का उपयोग करने का प्रयास करते समय मुझे java.lang.IllegalStateException: EJBCLIENT000025: No EJB receiver available for handling [appName:, moduleName:RandomEjb, distinctName:] combination for invocation context [email protected]
मिलता है।
<jee:remote-slsb id="remoteRandom"
jndi-name="RandomEjb/DefaultRemoteRandom!pl.lechglowiak.ejbTest.RemoteRandom"
business-interface="pl.lechglowiak.ejbTest.RemoteRandom"
<jee:environment>
java.naming.factory.initial=org.jboss.naming.remote.client.InitialContextFactory
java.naming.provider.url=remote://localhost:4447
jboss.naming.client.ejb.context=true
java.naming.security.principal=testuser
java.naming.security.credentials=testpassword
</jee:environment>
</jee:remote-slsb>
<bean id="remoteClient" class="pl.lechglowiak.RemoteClient">
<property name="remote" ref="remoteRandom" />
</bean>
RemoteClient.java सार्वजनिक वर्ग RemoteClient {
private RemoteRandom random;
public void setRemote(RemoteRandom random){
this.random = random;
}
public Integer callRandom(){
try {
return random.getRandom(100);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
मेरे jboss ग्राहक जार: org.jboss
यहाँ applicationContext.xml के प्रासंगिक हिस्सा है .as jboss-as-ejb-client-bom 7.1.2. अंतिम पोम
pl.lechglowiak.ejbTest.RemoteRandom क्लाइंट एप्लिकेशन क्लासपाथ के लिए उपलब्ध है। jndi.properties में <jee:environment>
<jee:remote-slsb>
में सटीक गुण होते हैं।
Context ctx2 = new InitialContext();
RemoteRandom rr = (RemoteRandom) ctx2.lookup("RandomEjb/DefaultRemoteRandom!pl.lechglowiak.ejbTest.RemoteRandom");
System.out.println(rr.getRandom(10000));
लेकिन यह: से निपटने [के लिए appName :, moduleName नहीं EJB रिसीवर उपलब्ध:
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
RemoteClient client = ctx.getBean("remoteClient", RemoteClient.class);
System.out.println(client.callRandom());
अपवाद के साथ समाप्त होता है: java.lang.IllegalStateException: EJBCLIENT000025
इस तरह के कोड बिना किसी अपवाद के चलाता है : RandomEjb, विशिष्ट नाम:] आमंत्रण संदर्भ [email protected] के लिए संयोजन।
jboss.naming.client.ejb.context=true
निर्धारित है। क्या आपको कोई विचार है कि मैं <jee:remote-slsb>
में गलत क्या कर रहा हूं?
यह एक सुधार है https://jira.primekey.se/browse/ECA-3607 – eluish192