2012-09-14 18 views
5

को संभालने के लिए कोई ईजेबी रिसीवर उपलब्ध नहीं है मेरे पास क्लाइंट एपिकेशन और जेबॉस एएस 7.1.1 का उपयोग कर सर्वर है। स्टार्टअप पर, मेरा क्लाइंट सर्वर से जुड़ा हुआ है और मुझे उपयोग करने के लिए एक दूरस्थ इंटरफ़ेस देता है। हालांकि, जब मैं इंटरफ़ेस के माध्यम से फ़ंक्शन चलाने का प्रयास करता हूं तो मुझे यह अपवाद मिलता है:IllegalStateException:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: 
No EJB receiver available for handling [appName:GrahamsProjServer,modulename:GrahamsProjServer,distinctname:] 
combination for invocation context [email protected] 
     at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:584) 
     at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:119) 
     at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181) 
     at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136) 
     at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121) 
     at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104) 
     at $Proxy0.persistSchemas(Unknown Source) 
     at grahamsprojclient.main.GrahamsProjScreen.btnPersistActionPerformed(Unknown Source) 
     at grahamsprojclient.main.GrahamsProjScreen.access$400(Unknown Source) 
     at grahamsprojclient.main.GrahamsProjScreen$5.actionPerformed(Unknown Source) 
     at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
     at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
     at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
     at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
     at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
     at java.awt.Component.processMouseEvent(Unknown Source) 
     at javax.swing.JComponent.processMouseEvent(Unknown Source) 
     at java.awt.Component.processEvent(Unknown Source) 
     at java.awt.Container.processEvent(Unknown Source) 
     at java.awt.Component.dispatchEventImpl(Unknown Source) 
     at java.awt.Container.dispatchEventImpl(Unknown Source) 
     at java.awt.Component.dispatchEvent(Unknown Source) 
     at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
     at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
     at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
     at java.awt.Container.dispatchEventImpl(Unknown Source) 
     at java.awt.Window.dispatchEventImpl(Unknown Source) 
     at java.awt.Component.dispatchEvent(Unknown Source) 
     at java.awt.EventQueue.dispatchEvent(Unknown Source) 
     at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
     at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
     at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
     at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
     at java.awt.EventDispatchThread.run(Unknown Source) 

सर्वर पर कोई त्रुटि नहीं दिखाई देती है। ऐसा लगता है कि जब मैं फ़ंक्शन चलाता हूं तो यह सर्वर से बात भी नहीं कर रहा है। यह कैसे हो सकता है कि मेरा क्लाइंट सर्वर से कनेक्ट हो रहा है ठीक है लेकिन जब मैं कोई फ़ंक्शन चलाने का प्रयास करता हूं तो यह कनेक्ट नहीं होगा?

उत्तर

5

No EJB receiver available संदेश स्वयं ही यह नहीं कहता कि यह क्यों कनेक्ट नहीं होगा, इसलिए यह आपके प्रश्न का उत्तर नहीं देगा, लेकिन कम से कम यह आपको सही दिशा पर इंगित कर सकता है।

जेबॉस ईजेबी क्लाइंट लाइब्रेरी Log4j का उपयोग करता है, इसलिए यह System.out और न ही System.err पर प्रिंट नहीं करेगा। वास्तव में यह जानने के लिए कि आपको क्या हो रहा है org.jboss.ejb.client पैकेज पर लॉगिंग सक्षम करना है, उदा। अपने log4j.properties पर इस लाइन को शामिल करके:

log4j.logger.org.jboss.ejb.client=TRACE 

इस के साथ आप बेहतर देख सकते हैं कि ग्राहक आप के लिए क्या कर रही है और सबसे शायद अंतर्निहित त्रुटि प्रिंट होगा सक्षम होना चाहिए।

इसके अलावा, JBoss 7.1.0 के रूप में, security-realm डिफ़ॉल्ट रूप से सक्षम आता है, तो दूरदराज के कॉल एक निम्न में से एक कार्य करना होगा बनाने के लिए:

  • standalone.xml फ़ाइल
  • से <security-realm/> को हटाने के द्वारा इसे अक्षम

या

  • bin/add-user(.bat)(.sh) स्क्रिप्ट का उपयोग करके सर्वर से उपयोगकर्ताओं को जोड़ें। एक बार जोड़े जाने के बाद, अपने jboss-ejb-client.properties फ़ाइल में उपयोगकर्ता/pwd जानकारी शामिल करें।

Here आप रिमोट क्लाइंट से ईजेबी कॉल करने के तरीके के बारे में अधिक विस्तृत मार्गदर्शिका प्राप्त कर सकते हैं।

+0

हाँ यह मेरे लिए सही जवाब है। –

संबंधित मुद्दे