So rufen Sie einen auf dem ESB ausgeführten REST-Proxy-Dienst über einen BPEL-Prozess auf dem BPS auf

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

  •  14-12-2019
  •  | 
  •  

Frage

Ich habe BPS eingerichtet und einige BPEL-Prozesse erstellt, mit denen ich Dienste auf dem Anwendungsserver aufrufen kann.Ich habe auf dem ESB einen REST-Proxy-Dienst erstellt, der einen Endpunkt zu einem Labview-Server verwendet.In Labview habe ich einen sehr einfachen REST-Dienst, der jede Sekunde einen Zufallswert generiert.Ich kann wie folgt auf den REST-Dienst zugreifen http://localhost:8000/Maths/random.Dadurch wird die folgende Ausgabe mit einem Zufallswert generiert

RValue:19.000000

Es ist mir gelungen, über den Gadget-Server auf diesen Dienst zuzugreifen und den Wert mithilfe des WSO2-Grafikframeworks als Diagramm anzuzeigen.

Ich habe jedoch Probleme, wenn ich versuche, denselben Proxy-Dienst über einen BPEL-Prozess aufzurufen.Ich habe vom ESB eine WSDL-Datei für den Proxy-Dienst generiert.Diese WSDL-Datei wird für die Portverbindungen usw. verwendet.Es gibt nur eine Operation, die „Vermittlungsoperation“, ohne Parameter oder Elemente.Ich habe einige der Tutorials für den BPS-Server befolgt, um den Dienst aufzurufen, hatte aber bisher keinen Erfolg.Kann mir jemand zeigen, wie das gemacht werden kann, oder mich auf ein ähnliches Tutorial verweisen?Vielen Dank.

U Raza unten ist der BPS -Fehler, den ich bekomme

[15.03.2012 18:22:33,265] INFO – BpelServerImpl – Registrierter Prozess {http://areasearvice.bpel.bps}AreaService-14.2012-03-15 18: 22: 42,282] Info-CarbonAuthenticationUtil-'Admin' angemeldet unter [2012-03-15 18: 22: 42.0282] aus der IP-Adresse 143.53.207.235 [2012-03-15 18: 23:09,041] ERROR - BpelObjectFactory$BOMSAXErrorHandler - null:file:///D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/RestfulProxy.bpel:88:56:cvc -Komplex-Type.3.2.2:Das Attribut „xml:space“ darf nicht im Element „bpel:literal“ erscheinen.2012-03-15 18: 23: 09.043] WARN-BpelObjectFactory-Validierungsfehler während der Parsen, Fortsetzung aufgrund von -dorg.apache.ode.compiler - BPELC - Info:[CompilingProcess] BPEL-Prozess wird kompiliert.[2012-03-15 18:23:09,116] INFO – WSDLRegistry – WSDL unter Datei:/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/GetLVRandomProxy.wsdl ist ein Beim doppelten Import sollten sich Ihre Dokumente alle in unterschiedlichen Namespaces befinden (das ist nicht schön, funktioniert aber trotzdem).[15.03.2012 18:23:09,116] INFO – WSDLRegistry – WSDL unter Datei:/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/GetLVRandomProxy.wsdl ist bereits vorhanden importiert, bezeichnet dies einen Zirkelverweis.[15.03.2012 18:23:09,134] FEHLER – BpelC – Datei:/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/RestfulProxy.bpel:72:Fehler:[CopyToMessageFromNonMessage] In die Nachrichtenvariable kopieren. RestProxyPLRequest erfordert eine Nachricht für den R-Wert.[15.03.2012 18:23:09,139] FEHLER – BpelC – Datei:/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/RestfulProxy.bpel:95:Fehler:[CopyFromMessageToNonMessage] Kopieren aus der Nachrichtenvariablen RestProxyPLResponse erfordert eine Nachricht für den L-Wert.[15.03.2012 18:23:09,143] FEHLER – BPELUploadExecutor – BPEL-Prozesskompilierungsfehler.org.apache.ode.bpel.compiler.api.CompilationException:Fehler:[CompilationErrors] Kompilierung mit 2 Fehlern abgeschlossen:file:/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/RestfulProxy.bpel:72:Fehler:[CopyToMessageFromNonMessage] In die Nachrichtenvariable kopieren. RestProxyPLRequest erfordert eine Nachricht für den R-Wert.file:/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/RestfulProxy.bpel:95:Fehler:[CopyFromMessageToNonMessage] Kopieren aus der Nachrichtenvariablen RestProxyPLResponse erfordert eine Nachricht für den L-Wert.unter org.apache.ode.bpel.compiler.bpelcompiler.comPile (bpelcompiler.java:815) unter org.apache.ode.bpel.compiler.bpelc.comPile (bpelc.java:278) unter org.apache.ode.bpel .compiler.bpelc.comPile (bpelc.java:364) unter org.apache.ode.store.deploymentunitdir $ 5.run (Deploymentunitdir.java:213) unter org.apache.ode.utils.internpool.runbllock (praktikum.java:: 57) unter org.apache.ode.store.deploymentunitdir.comPile (DeploymentUnitdir.java:210) unter org.apache.ode.store.deploymentunitdir.comPile (Deploymentunitdir.java:169) unter Org.wso2.carbon.bpel.Bpel.Bpel.Bpel.Bpel.Bpel.Bpel.Uiii: .FileUpload.bpeluploadexecutor.ValidateBpelpackage (Bpeluploadexecutor.java:262) bei org.wso2.carbon.bpel.ui.FileUpload.bpelaDexecutor.execute (bpeluploadexcutor. pload.abstractFileUploadexecutor .executegeneric (AbstractFileUploadexecutor.java:105) bei org.wso2.carbon.ui.transports.FileUpload.FileUploadexecutorManager $ carbonxmlFileUploadexechandler.execute (FileuadexcutorcutorcutorcutorManagon.java.java.java:392) or oder oruploadorManagonagerageragerageragerageragerageragerageragerageragerageragbonagerageragebonager -A -Sow -Otex -Verfassungsstätte. .FileUploadexecutorManager $ fileUploadexecutionHandlerManager .StartExec (FileUploadexecutorManager.java:276) unter org.wso2.carbon.ui.transports.FileUpload.FileUploadexecutorManager.execute (FileUploadexecutorman.java:125). .Java : 57) at javax.servlet.http.httpServlet.service (httpservlet.java:641) unter javax.servlet.http.httpserservlet.Service (htttpserd.java:722) unter org.ecliplets.helttplettplettplettplettplettpletplettp. service(ContextPathServletAdaptor.java:36) at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90) at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet. Java: 111) at org.eclipse.equinox.http.servlet.internal.proxyServlet.Service (proxyServlet.java:67) bei javax.servlet.http.httpserlet.Service (httpervlet.java:722) AT Oorg.WSOSSOSCARBONBON. .Bridge.BridgeServlet.Service (BridgeServlet.java:155) at javax.servlet.http.httpServlet.Service (httpServlet.java:722) at org.apache.catalina.core.ApplicationFilterchain.internelchain.Internelchain.Internelter.internelter.internelter.internelter.internilter.Internelter.Internelter.Internelter (ApplicationFilterchain.Interchain.intern.InterneL. org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke( StandardContextValve.java:164) unter org.apache.catalina.authenticator.authenticatorbase .valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.wso2.carbon.server.TomcatServer$1.invoke(TomcatServer.java:241) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java: 563) bei org.apache.catalina.core.Standardenginevalve.invoke (Standardginevalve.java:118) unter org.apache.catalina.connector .PROCESS (http11nioprocessor.java:396) at org.apache.coyote.http11.http11nioprotocol $ http11ConnectionHandler.process (http11nioprotocol.java:356) bei org.apache.tomcat.util.nio.356) at org.apache. .Java : 1534) unter java.util.concurrent.threadpoolexecutor $ wormax.runtask (unbekannte Quelle) unter java.util.concurrent.threadpoolexecutor $ Worker.run (Unbekannte Quelle) unter java.lang.thread.run (Unbekannte Quelle) (Unbekannte Quelle)

War es hilfreich?

Lösung

Ich habe es versucht und hier ein BPEL-Beispiel zum Aufrufen des folgenden Proxy-Dienstes bereitgestellt.Die Beispielartefakte finden Sie unter Hier.Hinweis – Sie müssen einen API-Schlüssel von erhalten Goodreads und durch ersetzen 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>

Andere Tipps

Hier ist eine ESB-Proxy-Konfiguration, die bei mir für eine GET-Anfrage funktioniert hat.

<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>

Dies ist für eine POST-Anfrage

<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>

Wollten Sie übrigens sagen, dass Sie über Gadget Server erfolgreich auf diesen Proxy-Dienst zugegriffen haben, aber nicht über BPS?Können Sie die ESB-Proxy-Konfiguration und die Fehlerprotokolle veröffentlichen, die Sie von BPS erhalten haben?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top