2013-08-14 4 views
5

मैं समझता हूं कि वेबस्पेयर 8.0.0.6 जेएक्स-आरएस 1.1 के लिए अपाचे विंक कार्यान्वयन का उपयोग करता है।वेबस्पेयर पर जेएक्स-आरएस कार्यान्वयन 8.0.0.6

मैं बस सोच रहा हूं कि अपाचे विंक का कौन सा संस्करण इसका उपयोग करता है?

इसके अलावा, अगर मुझे अपाचे सीएक्सएफ का उपयोग करने की ज़रूरत है तो क्या मैं सिर्फ अपने युद्ध के साथ सीएक्सएफ जार को बंडल करता हूं?

भी

क्या कार्यान्वयन CDI (वेल्ड 2.x ??), बीन मान्यता (??), जेपीए के लिए Websphere 8.0.0.6 उपयोग करता है (??), JAXB (??) आदि ..

उत्तर

6

पर सूचीबद्ध होते हैं था v8.0.0.x का उपयोग करता है यह विंक v1.1-incubating के संशोधित संस्करण का ही रहा है। यदि आप {WAS_HOME}/प्लगइन पर नेविगेट करते हैं, तो आपको com.ibm.ws.jaxrs.jar नामक एक .jar दिखाई देगा। यदि आप उस आर्टिफैक्ट के भीतर मैनिफ़ेस्ट का पता लगाते हैं, तो आप देखेंगे कि आईबीएम संशोधित विंक v1.1-इनक्यूबेटिंग और अपना स्वयं का v1.1.1 बनाया गया है। आप इस संस्करण का उपयोग करना चाहेंगे, क्योंकि इसमें विंक-जेसीडीआई-सर्वर शामिल है। अन्यथा, आप अपने ईजेबी को अपने विंक संसाधनों में इंजेक्ट नहीं कर सकते हैं, जो कई परेशान करने वाली समस्याएं पैदा करता है। मैं आम तौर पर एक विक्रेता-विशिष्ट समाधान के लिए खुद को झुकाव नहीं करना चाहता, लेकिन इस मामले में, आप आईबीएम के विंक कार्यान्वयन का उपयोग करना चाहते हैं। मैंने v1.2 से wink-jcdi-server का बैकपोर्ट किया है- v1.1 से इनक्यूबेटिंग - अस्थायी सफलता के साथ सेते हुए (मुझे जेसीडीआई सुविधा काम करने के लिए मिला है, लेकिन फिर, किसी भी निर्धारित मूल कारण के साथ, इसे बाद में कुछ तैनाती नहीं हुई)। तो, अपने आप को निराशा से बचाएं और आईएमबी के विंक कार्यान्वयन का उपयोग करें। ओएसजीआई से संबंधित आर्टिफैक्ट के माध्यम से आईबीएम के विंक कार्यान्वयन को आपके ऐप के संपर्क में लाया जाएगा, भले ही आपने क्लासलोडर पॉलिसी को PARENT_FIRST या PARENT_LAST पर सेट किया हो। मुझे संदेह है कि यह एक बग है। आपको अपनी परियोजना में com.ibm.ws.prereq.jaxrs.jar आर्टिफैक्ट को भी शामिल करने की आवश्यकता होगी।

<!-- Wink Servlet --> 
<servlet> 
    <description>JAX-RS Tools Generated - Do not modify</description> 
    <servlet-name>JAX-RS Servlet</servlet-name> 
    <servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-class> 
    <init-param> 
     <param-name>javax.ws.rs.Application</param-name> 
     <param-value>com.company.webservices.config.WinkApplication</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
    <enabled>true</enabled> 
    <async-supported>false</async-supported> 
</servlet> 

<!-- Wink Servlet Mapping --> 
<servlet-mapping> 
    <servlet-name>JAX-RS Servlet</servlet-name> 
    <url-pattern>/resources/*</url-pattern> 
</servlet-mapping> 

IBM's own WAS v8.0 video on JAX-RS के अनुसार, अपने आवेदन उपवर्ग स्वचालित रूप से आवेदन वर्ग और ApplicationPath एनोटेशन का विस्तार द्वारा मान्यता प्राप्त हो जाएगा:

web.xml में, निम्न config का उपयोग करें। यह मामला नहीं है। आपको web.xml में अपना एप्लिकेशन सबक्लास निर्दिष्ट करना होगा। हालांकि, आप देखेंगे कि कंसोल आपको बताएगा कि डिफ़ॉल्ट विंक एप्लिकेशन का उपयोग किया गया था। यह गलत है। आपकी कक्षा को उठाया जाएगा, और आपको GetClasses विधि को ओवरराइड करने और अपने प्रदाता, संसाधन इत्यादि को पंजीकृत करने की आवश्यकता होगी। यह व्यवहार देखा गया है और WAS v8.0.0.8 के रूप में पूरी तरह से परीक्षण किया गया है।

आप विकल्प के रूप में WAS 8 में सीएक्सएफ को आजमा सकते हैं।

Geronimo और TomEE की तरह, WAS अपाचे उत्पादों पर बनाया गया है। मैं गलत हो सकता था, लेकिन, मुझे याद है, WAS v8.0 अपाचे ओपनवेबबीन्स v1.0, अपाचे बीवाल v1.0, अपाचे ओपनजेपीए v2.1.2-SNAPSHOT का उपयोग करता है। मुझे JAXB के बारे में निश्चित नहीं है, लेकिन मुझे लगता है कि वे अपने स्वयं के json4j ढांचे का उपयोग करते हैं। मैं आश्चर्यजनक रूप से बहुत सफलता के साथ MOXy का उपयोग करें।

+0

धन्यवाद के लिए निर्दिष्ट हैं। 'Unzip -p /opt/IBM/WebSphere/AppServer/plugins/com.ibm.ws.prereq.jaxrs.jar मेटा-आईएनएफ/MANIFEST.MF' – DarVar

+0

के साथ सभी संस्करणों को देख सकते हैं मैंने WAS 8 पर 2017 से सीएक्सएफ का उपयोग किया और यह काम करता है (क्योंकि आपने लिखा था "आप WAS 8 में सीएक्सएफ को आजमा सकते हैं, लेकिन आप अधिकतर मुद्दों में भाग लेंगे।"_) लेकिन बहुत ही जानकारीपूर्ण पोस्टिंग – aliopi

+0

@aliopi - धन्यवाद। जानना अच्छा है। मुझे लगता है कि मैं क्लासलोडर मुद्दों में भाग गया था जब मैं 8 साल पहले डब्ल्यूएएस पर वेब ऐप के लिए सीएक्सएफ का उपयोग करने का प्रयास कर रहा था लेकिन कुछ समस्याएं आईं, इसलिए मैंने लिखा मैंने सुना था/पढ़ा था कि आप सीएक्सएफ पर काम कर सकते हैं। मैं अपना जवाब संपादित करूंगा। –

1

आप WAS_HOME/bin निर्देशिका में स्थित versionInfo स्क्रिप्ट चलाकर घटक संस्करणों के बारे में विस्तृत रिपोर्ट प्राप्त कर सकते हैं। उदाहरण के लिए, लिनक्स के लिए के लिए:

./versionInfo.sh -file versionReport.txt -maintenancePackages -componentDetail 

विशिष्टता संस्करण Specifications and API documentation

+0

संस्करण रिपोर्ट मिला लेकिन जेईई 6 कार्यान्वयन या चश्मा समर्थित कोई विवरण नहीं देता है? – DarVar

+0

मेरे पास हाथ में WAS 8.0 नहीं है। उदाहरण के लिए WAS 7.0 JAXB संस्करण के साथ bundle.fp.jaxb घटक के रूप में दिखाई देता है। मैंने लिंक के साथ उत्तर अपडेट किया जहां सभी spec संस्करण WAS 8.0 – fnt

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