मुझे किसी एप्लिकेशन क्लाइंट से एक स्टेटस सत्र बीन (एसएफएसबी) तक पहुंचने में कुछ परेशानी हो रही है। मैं जेबॉस 5.0.1 का उपयोग कर रहा हूं। एप्लिकेशन क्लाइंट और ईजेबी दोनों ईएआर में पैक किए जाते हैं जो तैनात होते हैं और मेरे पास अन्य एप्लिकेशन क्लाइंट हैं जो बिना किसी समस्या के काम करते हैं। अब तक, मैंने केवल स्टेटलेस सत्र बीन्स (एसएलएसबी) का उपयोग किया है, लेकिन जहां तक मैं इसे अनदेखा करता हूं, एसएलएसबी और एसएफएसबी के बीच अंतर इस बात को प्रभावित नहीं करते हैं कि उन्हें एप्लिकेशन क्लाइंट से कैसे पहुंचा जा सकता है।ईजेबी 3: किसी एप्लिकेशन क्लाइंट से एक स्टेटस सत्र बीन तक पहुंच
वर्गों/इंटरफेस की संरचना:
@Local public interface A {...}
@Stateless public class ABean implements A {...}
@Remote public interface B {...}
@Stateful public class BBean implements B {
@EJB private A anInstanceOfA;
@PostConstruct private void init() {
this.anInstanceOfA.someMethod();
}
}
आवेदन ग्राहक "appclient-लांचर" के माध्यम से चलाया जाता है "How to use an application client in JBoss 5" में वर्णित है। "बीबीन" की तलाश करना ठीक काम करता है जब तक कि (स्थानीय) ABNan पर कुछ विधि() को init() के निष्पादन के दौरान बुलाया जाता है। उस कॉल के दौरान, कंटेनर एक अमान्यस्टेट अपवाद ("स्थानीय कॉल: सुरक्षा संदर्भ शून्य है") (रूट कारण के रूप में) फेंकता है। जब मैं राज्यहीन बीन को एक स्टेटलेस बीन में बदलता हूं, तो सब कुछ ठीक काम करता है (बेशक, राज्य को संरक्षित नहीं किया जाता है)। दिलचस्प बात यह है कि, मैं एक वेब एप्लिकेशन (एक जेएसएफ प्रबंधित-बीन में) से ठीक उसी एसएफएसबी का उपयोग कर सकता हूं।
क्या मैं कुछ गलत कर रहा हूं? मुझे एप्लिकेशन क्लाइंट से एसएफएसबी का उपयोग कैसे करना चाहिए?
मुझे अब तक इस विशेष समस्या के बारे में कुछ भी उपयोगी नहीं मिला है। अपवाद का उल्लेख [#JBAS-4317] Security Context over the invocation में इसी संदर्भ में किया गया है, लेकिन यह मानते हुए कि इसे पूरा किया गया है और जेबॉस 5.0.0.बीटा 3 में तय किया गया है, ऐसा लगता है कि यह एक ही समस्या नहीं है।
वेब अनुप्रयोग है कि यह भी पैक किया जाता है:
दिलचस्प जानकारी। हालांकि, मुझे यकीन नहीं है कि यह व्यवहार को कैसे समझाता है, विशेष रूप से यह एक स्टेटलेस बीन में "काम करता है" और समस्या तब होती है जब मैंने अपना स्वयं का सुरक्षा डोमेन उपयोग किया। वैसे भी, चूंकि मेरे पास अब परियोजना के साथ कुछ लेना देना नहीं है और तब से कोई जावा ईई विकास नहीं किया है, इसलिए मैं वास्तव में यह पता लगाने के लिए प्रेरित नहीं हूं कि यह सामान वास्तव में कैसे काम करता है। फिर भी धन्यवाद! –