2014-06-18 9 views
14

क्या वेबस्पेयर एप्लिकेशन सर्वर लिबर्टी प्रोफाइल V8.5 में क्रॉस-मूल संसाधन साझाकरण (सीओआरएस) लागू करना संभव है?वेबस्पेयर एप्लिकेशन सर्वर में सीओआरएस को परिभाषित करने के लिए कैसे करें लिबर्टी प्रोफाइल V8.5

मैंने रेडबुक की खोज की लेकिन आईबीएम को इसके बारे में कुछ भी नहीं मिला। (http://www.redbooks.ibm.com/abstracts/sg248076.html?Open)

यह नहीं संभावना मुझे इस तरह प्रोग्राम के रूप में हेडर स्थापित करने के लिए के लिए है:

Access-Control-Allow-Origin: * 

(http://enable-cors.org/server.html)

+0

मैं वर्तमान में http://software.dzhuvinov.com/cors-filter-installation.html की जांच कर रहा हूं: मुझे गड़बड़ हो रही है (मैं webservice में अपने प्रिंट देख सकता हूं)! केवल समस्या यह है कि सेवा कभी वापस नहीं आ रही है और मेरा ब्राउज़र प्रतिक्रिया के लिए इंतजार कर रहा है ... –

+0

कृपया लिबर्टी में आधिकारिक सीओआरएस समर्थन के लिए मेरा उत्तर देखें। – ArthurDM

उत्तर

9

आप अपने WEB-INF/lib फ़ोल्डर में जार निम्नलिखित जोड़ने के लिए:

में अपने web.xml आप निम्नलिखित नियमों जोड़ने के लिए:

<filter> 
    <filter-name>CORS</filter-name> 
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> 
</filter> 
<filter-mapping> 
     <filter-name>CORS</filter-name> 
     <url-pattern>/*</url-pattern> 
</filter-mapping> 
+0

ऐसा नहीं लगता कि युद्ध में केवल HTML और जावास्क्रिप्ट शामिल है। ऐसे मामले के लिए सीओआर को सक्षम करने के लिए वेबस्पेयर स्वतंत्रता सर्वर को कॉन्फ़िगर करने का कोई और तरीका है। – DarVar

+0

@ द्वारवार क्या आपने पहले ही अपना मुद्दा हल किया था? यदि आप केवल HTML और जावास्क्रिप्ट की सेवा करते हैं तो आपको इन समस्याओं का सामना नहीं करना पड़ेगा। केवल तभी जब आप किसी अन्य सॉकेट पर webservice का आह्वान कर रहे हों। – GuyT

+0

विधि काम करती है लेकिन दुर्भाग्यवश मेरे मामले में क्लास लोडिंग मोड को इसे काम करने के लिए बदलने की जरूरत है, जो वांछनीय नहीं है। विधि का एक और विस्तृत स्पष्टीकरण यहां पाया गया है। https://clmpractice.org/2015/01/07/how-to-enable-cors-with-rational-team-concert-ccm-running-on-a-websphere-application-server-was-8-5/ –

0

जो एक वैकल्पिक हल की तलाश में है IBM Websphere अनुप्रयोग सर्वर का उपयोग कर और एक जवाब CORS लागू करने के लिए की तलाश में हैं, जबकि उन लोगों के लिए। (आपको यह प्रोग्रामेटिक रूप से करना चाहिए) मुझे पता है कि ओप जावा कोड का उपयोग किए बिना उत्तर ढूंढ रहा है या नहीं ... यह किसी और के लिए सहायक हो सकता है .. एक फ़िल्टर लिखें जो आपको प्रतिक्रिया हेडर प्रोग्रामेटिक रूप से सेट करने देता है। जैसे:

public class YourFilter implements javax.servlet.Filter{ 

    @Override 
    public void doFilter(ServletRequest request,ServletResponse servletResponse , FilterChain chain) throws IOException, ServletException { 
     HttpServletResponse response = (HttpServletResponse) servletResponse ; 
     response.setHeader("Access-Control-Allow-Origin", "*"); 
     response.setHeader("Access-Control-Allow-Headers","Access-Control-Allow-Origin, X-Requested-With", bla,bla...); 
    } 
} 
5

जनवरी वर्ष 2016 बीटा के साथ शुरू (संपादित करें: और अब लिबर्टी 8559 में), WebSphere लिबर्टी देशी रूप CORS का समर्थन करता है। तुम बस CORS इच्छित विकल्पों के साथ server.xml कॉन्फ़िगर करते हैं, यहाँ एक उदाहरण है:

<cors domain="/sampleApp/path" 
    allowedOrigins="https://alice.com:8090" 
    allowedMethods="GET, DELETE, POST" 
    allowedHeaders="Accept, MyRequestHeader1" 
    exposeHeaders="MyResponseHeader1" 
    allowallowCredentials="true" 
    maxAge="3600" /> 

डोमेन विशेषता आवेदन जड़ है कि आप करने के लिए लागू करने के लिए इस विन्यास चाहते हैं, यह कोई प्रभाव नहीं पड़ेगा, जिसका मतलब है के लिए है अन्य संदर्भ जड़ों। अन्य 7 गुण वास्तव में आधिकारिक कोर्स स्पेक (https://www.w3.org/TR/cors/) का पालन करते हैं, इसलिए वे सुंदर आत्म व्याख्यात्मक हैं। बीटा के लिए

लिंक: https://developer.ibm.com/wasdev/blog/2016/01/15/beta-websphere-liberty-and-tools-january/

1

ArthurDM से CORS का विस्तार करने के लिए: दस्तावेज जिन पन्नों पर मेरे लिए काफी समझा नहीं। मेरा सेटअप निम्न है और मैं बस इसे आपके साथ साझा करना चाहता हूं:

  • लिबर्टी प्रोफ़ाइल 8.5.5.9 का उपयोग करें। तो स्वतंत्रता प्रोफ़ाइल के लिए सीओआरएस अतिरिक्त बीटा में नहीं है।
  • जावाई बैच का उपयोग करें और बैच को अपने सभी डेटा को भंडार में रखें (स्मृति में नहीं)।
  • मैं बैच मैनेजमेंट-1.0 सुविधा का उपयोग बैच के बाकी एपीआई के लिए करना चाहता था जो इसके साथ आता है।
  • कोणीय 1।

अंततः निम्नलिखित CORS सेटिंग चाल किया:

<cors domain="/ibm/api" 
     allowedOrigins="http://localhost:9080" 
     allowedMethods="GET, POST, PUT, DELETE" 
     allowedHeaders="Accept, Accept-Language, Content-Language, Content-Type" 
     exposeHeaders="Content-Type" 
     allowCredentials="true" 
     maxAge="3600" /> 

गुड लक, और मुझे आशा है कि यह मदद करता है।

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

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