كيفية استدعاء خدمة REST Proxy التي تعمل على ESB من عملية BPEL على BPS

StackOverflow https://stackoverflow.com//questions/9707851

  •  14-12-2019
  •  | 
  •  

سؤال

لقد قمت بإعداد BPS وقمت بإنشاء عدد قليل من عمليات BPEL التي يمكنني استخدامها لاستدعاء الخدمات على خادم التطبيقات.لقد قمت بإنشاء خدمة وكيل REST على ESB والتي تستخدم نقطة نهاية لخادم Labview.في Labview لدي خدمة REST أساسية جدًا والتي تولد قيمة عشوائية كل ثانية.يمكنني الوصول إلى خدمة REST على النحو التالي http://localhost:8000/Maths/random.يؤدي هذا إلى إنشاء الإخراج التالي بقيمة عشوائية

RValue:19.000000

لقد نجحت في الوصول إلى هذه الخدمة من خلال خادم Gadget وعرض القيمة كرسم بياني باستخدام إطار الرسومات WSO2.

ولكنني أواجه مشكلات عندما أحاول استدعاء نفس خدمة الوكيل من عملية BPEL.لقد قمت بإنشاء ملف wsdl لخدمة الوكيل من ESB.يتم استخدام ملف wsdl هذا لاتصالات المنفذ وما إلى ذلك.لديها عملية واحدة فقط وهي العملية "الوسيطة" بدون معلمات أو عناصر.لقد اتبعت عددًا قليلاً من البرامج التعليمية لخادم BPS لاستدعاء الخدمة ولكن لم أحقق أي نجاح حتى الآن.هل يمكن لأي شخص أن يريني كيف يمكن القيام بذلك أو يوجهني إلى برنامج تعليمي مماثل؟تشكرات.

u raza أدناه هو خطأ BPS الذي أحصل عليه

[2012-03-15 18:22:33,265] معلومات - BpelServerImpl - عملية مسجلة {http://areasearvice.bpel.bps}AreaService-14.2012-03-15 18: 22: 42،282] Info-CarbonAuthenticationUtil-"المسؤول" تم تسجيل الدخول في [2012-03-15 18: 22: 42،0282] من عنوان IP 143.53.207.235 [2012-03-15 18: 23: 09،041] خطأ - bpelobjectfactory $ bomsaxerrorhandler - null: file: /// d: /esb/wso2/wso2bps-2.1.0/tmp/work/bpeltemp/1.33183578879275e12/bpelrest/restful. -الكوني من نوعه .3.2.2:غير مسموح للسمة 'xml:space' بالظهور في العنصر 'bpel:literal'.2012-03-15 18: 23: 09،043] WARN-BPELOBJECTFACTORY-أخطاء التحقق من الصحة أثناء التحليل ، مستمر بسبب -dorg.apache.ode.compiler.failonvalidationerrors = switch switch [2012-03-15 18: 23: 09،046] - BPELC - معلومات:[عملية التجميع] تجميع عملية BPEL.[2012-03-15 18:23:09,116] INFO - WSDLRegistry - WSDL في الملف:/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/GetLVRandomProxy.wsdl هو استيراد مكرر، يجب أن تكون جميع مستنداتك في مساحات أسماء مختلفة (هذا ليس جيدًا ولكنه سيظل يعمل).[2012-03-15 18:23:09,116] INFO - WSDLRegistry - WSDL في الملف:/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/GetLVRandomProxy.wsdl موجود بالفعل المستوردة، وهذا يدل على مرجع دائري.[2012-03-15 18:23:09,134] خطأ - BpelC - الملف:/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/RestfulProxy.bpel:72:خطأ:[CopyToMessageFromNonMessage] يتطلب النسخ إلى متغير الرسالة RestProxyPLRequest رسالة لقيمة r.[2012-03-15 18:23:09,139] خطأ - BpelC - الملف:/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/RestfulProxy.bpel:95:خطأ:[CopyFromMessageToNonMessage] يتطلب النسخ من متغير الرسالة RestProxyPLResponse رسالة للقيمة l.[2012-03-15 18:23:09,143] خطأ - BPELUploadExecutor - فشل تجميع عملية BPEL.org.Apache.ode.bpel.compiler.api.CompilationException:خطأ:[CompilationErrors] اكتمل التجميع مع وجود خطأين (أخطاء):الملف:/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/RestfulProxy.bpel:72:خطأ:[CopyToMessageFromNonMessage] يتطلب النسخ إلى متغير الرسالة RestProxyPLRequest رسالة لقيمة r.الملف:/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/RestfulProxy.bpel:95:خطأ:[CopyFromMessageToNonMessage] يتطلب النسخ من متغير الرسالة RestProxyPLResponse رسالة للقيمة l.في org.apache.ode.bpel.compiler.bpelcompiler.compile (bpelcompiler.java:815) على org.apache.ode.bpel.compiler.bpelc.com (bpelc.java:278) على org.apache.ode.ode.ode.ode.ode.ode.ode.ode.ode.ode.ode.ode.ode.ode.ode.ode.ode.ode.ode.ode.ode.ode.ed .compiler.bpelc.compile (bpelc.java:364) في org.apache.ode.store.deploymentunitdir $ 5.run (deploymentunitdir.java:213) at org.ode.ode.utils.internpool.runblock (internpol.java: 57) at org.apache.ode.store.deploymentunitdir.compile (deploymentUnitdir.java:210) at org.apache.ode.store.deploymentunitdir.compile (deploymentunitdir.java:169) على org.wso2.carbon.bpel.uii .fileupload.bpeluploadexecutor.validatebpelpackage (bpeluploadexecutor.java:262) في org.wso2 Ansports.fileupload.abstractFileUploadexecutor .executegeneric (AbstractFilePloadexecutor.java:105) في org.wso2 ileupload.fileuploadexecutormanager $ fileuploadexecutionhandlermanager .startexec (fileUploadexecutormanager.java:276) في org.wso2 ploadservlet.java : 57) في javax.servlet.http.httpservlet.service (httpservlet.java:641) في javax.servlet.http.httpservlet.service (httpservlet.java:722) at org.eclipse.equinox.htp.help.helder.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.help.helpht Service (ContextPathServledaptor.java:36) at org.eclipse.equinox.http.servlet.internal.servletregistration.handlerequest (servletregistration.java:90) في org.eclipse.equinox.http.servlet.proxyplet.procservlet.proceservlet.procservelt.procyptevlet.procyptevlet.procyptervel. java: 111) في org.eclipse.equinox.http.servlet.internal.proxyservlet.service (proxyservlet.java:67) في javax.servlet.http.httpservlet.service .bridge.bridgeservlet.service (Bridgeservlet.java:155) في javax.servlet.http.httpservlet.service (httpservlet.java:722) at org.apache.catalina.core.applicationfilterchain.intern org.apache.catalina.core.applicationfilterchain.dofilter (ApplicationFilterChain.java:210) at org.apache.catalina.core.standardwrappervalve.invoke (standardwrappervalve.java:240) at org.catalina.core.core.core.core.core.core. standardContextValve.java:164) في org.apache.catalina.authenticator.authenticatorbase.invoke (AuthenticatorBase.Java:462) في org.apache.catalina.core.standardhostvalve.invoke (standardhostvalve.java:164) .valves.ErrorreportValve.invoke (errorreportvalve.java:100) في org.wso2 563) في org.apache.catalina.core.standardenginevalve.invoke (standardenginevalve.java:118) at org.apache.catalina.conector.coyoteadapter.service (coyoteadapter.java:399) . جافا : 1534) في java.util.concurrent.threadpoolexecutor $ worker.runtask (مصدر غير معروف) على java.util.concurrent.threadpoolexecutor $ worker.run (مصدر غير معروف) في java.lang.run.run (مصدر غير معروف)

هل كانت مفيدة؟

المحلول

لقد جربت هذا وقمت هنا بتقديم نموذج BPEL لاستدعاء خدمة الوكيل التالية.يرجى العثور على عينة من القطع الأثرية هنا.ملاحظة - يجب عليك الحصول على مفتاح API من com.goodreads واستبدال ب MyKeyHere.

<proxy name="GetProxy" transports="https http" startOnLoad="true" trace="disable">
        <target>
            <inSequence>
                <log level="full"/>
                <property name="HTTP_METHOD" value="GET" scope="axis2"/>
                <property name="REST_URL_POSTFIX" value="/4776766.xml?key=MyKeyHere" scope="axis2"/>
                <send>
                    <endpoint>
                        <address uri="http://www.goodreads.com/author/list"/>
                    </endpoint>
                </send>
            </inSequence>
            <outSequence>
                <send/>
            </outSequence>
        </target>
    </proxy>

نصائح أخرى

إليك تكوين وكيل ESB الذي نجح معي في طلب GET.

<proxy name="GetProxy" transports="https http" startOnLoad="true" trace="disable">
        <target>
            <inSequence>
                <log level="full"/>
                <property name="HTTP_METHOD" value="GET" scope="axis2"/>
                <property name="REST_URL_POSTFIX" value="/4776766.xml?key=MyKeyHere" scope="axis2"/>
                <send>
                    <endpoint>
                        <address uri="http://www.goodreads.com/author/list"/>
                    </endpoint>
                </send>
            </inSequence>
            <outSequence>
                <send/>
            </outSequence>
        </target>
    </proxy>

هذا لطلب POST

<proxy name="TestProxy" transports="https http" startOnLoad="true" trace="disable">
    <target>
        <inSequence>
            <log level="full"/>
            <property name="messageType" value="application/xml" scope="axis2"/>
            <property name="ContentType" value="application/xml" scope="axis2"/>
            <send>
                <endpoint>
                    <address uri="http://localhost:8080/TestServlet/emal/xml_api"/>
                </endpoint>
            </send>
        </inSequence>
        <outSequence>
            <property name="messageType" value="text/xml" scope="axis2"/>
            <property name="ContentType" value="text/xml" scope="axis2"/>
            <send/>
        </outSequence>
    </target>
</proxy>

راجع للشغل هل كنت تقصد القول بأنك نجحت في الوصول إلى خدمة الوكيل عبر Gadget Server، ولكن ليس عبر BPS؟هل يمكنك نشر تكوين وكيل ESB وسجلات الأخطاء التي حصلت عليها من BPS؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top