Comment appeler un service proxy REST exécuté sur l'ESB à partir d'un processus BPEL sur le BPS

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

  •  14-12-2019
  •  | 
  •  

Question

J'ai configuré BPS et créé quelques processus BPEL que je peux utiliser pour appeler des services sur le serveur d'applications.J'ai créé un service proxy REST sur l'ESB qui utilise un point de terminaison vers un serveur Labview.Dans Labview, j'ai un service REST très basique qui génère une valeur aléatoire chaque seconde.Je peux accéder au service REST comme suit http://localhost:8000/Maths/random.Cela génère la sortie suivante avec une valeur aléatoire

RValue:19.000000

J'ai réussi à accéder à ce service via le serveur Gadget et à afficher la valeur sous forme de graphique à l'aide du cadre graphique WSO2.

Mais j'ai des problèmes lorsque j'essaie d'invoquer le même service proxy à partir d'un processus BPEL.J'ai généré un fichier wsdl pour le service proxy de l'ESB.Ce fichier wsdl est utilisé pour les connexions de port, etc.Il n'a qu'une seule opération, l'opération "intermédiaire", sans paramètres ni éléments.J'ai suivi quelques didacticiels permettant au serveur BPS d'invoquer le service, mais je n'ai eu aucun succès jusqu'à présent.Quelqu'un peut-il me montrer comment procéder ou m'indiquer un tutoriel similaire ?Merci beaucoup.

U raza ci-dessous est l'erreur bps que j'obtiens

[2012-03-15 18:22:33,265] INFO - BpelServerImpl - Processus enregistré {http://areasearvice.bpel.bps}AreaService-14.2012-03-15 18: 22: 42,282] Info - CarbonauthenticationUtil - 'admin' connecté à [2012-03-15 18: 22: 42 0282] De l'adresse IP 143.53.207.235 [2012-03-15 18: 23: 09,041] Erreur - bpelobjectfactory $ bomsaxerrorhandler - null: fichier: /// d: /esb/wso2/wso2bps-2.1.0/tmp/work/bpeltemp/1.33183578879275e12/bpestr -complex-type.3.2.2:L'attribut 'xml:space' n'est pas autorisé à apparaître dans l'élément 'bpel:literal'.2012-03-15 18: 23: 09,043] Warn - BpeloBjectFactory - Erreurs de validation pendant l'analyse, continuant en raison de -dorg.apache.ode.compiller.failonValidationErrors = False Switch [2012-03-15 18: 23: 09 046] Info - BPELC - Info:[CompilingProcess] Processus de compilation BPEL.[2012-03-15 18:23:09,116] INFO - WSDLRegistry - WSDL dans le fichier :/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/GetLVRandomProxy.wsdl est un importation en double, vos documents doivent tous être dans des espaces de noms différents (ce n'est pas sympa mais cela fonctionnera toujours).[2012-03-15 18:23:09,116] INFO - WSDLRegistry - WSDL dans le fichier :/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/GetLVRandomProxy.wsdl est déjà importé, cela dénote une référence circulaire.[2012-03-15 18:23:09,134] ERREUR - BpelC - fichier:/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/RestfulProxy.bpel:72 :erreur:[CopyToMessageFromNonMessage] Copier dans la variable de message RestProxyPLRequest nécessite un message pour la valeur r.[2012-03-15 18:23:09,139] ERREUR - BpelC - fichier:/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/RestfulProxy.bpel:95 :erreur:[CopyFromMessageToNonMessage] La copie de la variable de message RestProxyPLResponse nécessite un message pour la valeur l.[2012-03-15 18:23:09,143] ERREUR - BPELUploadExecutor - Échec de la compilation du processus BPEL.org.apache.ode.bpel.compiler.api.CompilationException :erreur:[CompilationErrors] Compilation terminée avec 2 erreur(s) :fichier:/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/RestfulProxy.bpel:72 :erreur:[CopyToMessageFromNonMessage] Copier dans la variable de message RestProxyPLRequest nécessite un message pour la valeur r.fichier:/D:/ESB/WSO2/wso2bps-2.1.0/tmp/work/bpelTemp/1.33183578879275E12/BPELREST/RestfulProxy.bpel:95 :erreur:[CopyFromMessageToNonMessage] La copie de la variable de message RestProxyPLResponse nécessite un message pour la valeur l.sur org.apache.ode.bpel.compiller.bpelcompiler.compile (bpelcompiler.java:815) sur org.apache.ode.bpel.comPiler.bpelc.compile (bpelc.java:278) à org.apache.bpel. .compiler.bpelc.comPile (bpelc.java:364) sur org.apache.ode.store.deploymentUnitdir 5.Run (deplacementunitdir.java:213) à org.apache.ode.utils.internpool.runblock (Internpool.java: 57) sur org.apache.ode.store.deploymentUnitdir.Ch. .Fileupload.bpeluploadexecutor.validaBpelpackage (bpeluploadexecutor.java:262) sur org.wso2.carbon.bpel.ui.fileupload.bpeluploadexecutor.execute (bpeluploadexecutor.java:101) sur org.ws.Carbon.uiipport.java:101) sur org.ws.Carbon.Uiipport.Java:101) sur org.ws.Carbon.UiiPol load.AbsttractFileUpLadexecUtor .ExecuteGeneric (AbstractFileUpLoAdExECUTOR.java:105) sur org.wso2.carbon.ui.transports.fileupload.fileuploadexecutorManager $ carbonxmlfileuploadexechandler.execute (fileuploadexecumanager.java:392) à org.wso2 .FileUpLadeXecutorManager $ FileUpLaDeXecutionHandlerManager .Startexec (FileUpLoadexEcutorManager.java:276) sur org.wso2.carbon.ui.transports.fileupload.fileuploadexecutorManager.Exécute (FileUpLaDeXecutOrmanager.java:125) sur org.wso-2.carbon.ui. java : 57) sur javax.servlet.http.httpservlet.service (httpservlet.java:641) à javax.servlet.http.httpservlet.service (httpservlet.java:722) à org.eclips.equinox.http.helper.contextpator. Service (ContextPathServletAdaptor.java:36) sur org.eclipse.equinox.http.servlet.internal.servletRegisting.handlerequest (servletRegistartic.java:90) à org.eclipse.equinox.http.servlet.internal.proxyservlet.processalias. Java: 111) sur org.eclipse.equinox.http.servlet.internal.proxyservlet.service (proxyservlet.java:67) sur javax.servlet.http.httpservlet.service (httpservlet.java:722) at org.wso2.carbon .bridge.bridgeservlet.service (Bridgeservlet.java:155) à javax.servlet.http.httpservlet.service (httpservlet.java:722) à org.apache.catalina.core.applicationfilterchain org.apache.catalina.core.applicationfilterchain.dofilter (applicationFilterChain.java:210) sur org.apache.catalina.core.standardwrappervalve.invoke (standardwrappervalve.java:240) à org.apache.catalina.core.standardContex StandardContextValve.java:164) sur org.apache.catalina.authenticator.authenticatorbase.invoke (authenticatorbase.java:462) à org.apache.catalina.core.standardhostvalve.invoke (standardhostvalve.java:164) à org.apache.catala .Valves.ErrorReportValve.invoke (errorReportValve.java:100) sur org.wso2.carbon.server.tomcatserver 1 563) sur org.apache.catalina.core.standardEngineValve.invoke (standardEngineValve.java:118) sur org.apache.catalina.connector.coyoteadapter.service (coyoteadapter.java:399) à Org.apache.Coyote.http11.http11n .process (http11nioprocessor.java:396) sur org.apache.coyote.http11.http11nioprotocol $ http11Connectionhandler.process (http11nioprotocol.java:356) à Org.apache.tomcat.util.net.NioendPoint $. Endpoint.java : 1534) sur java.util.concurrent.threadpoolexecutor $ worker.runtask (source inconnue) sur java.util.concurrent.threadpoolexecutor $ worker.run (source inconnue) à java.lang.thread.run (source inconnue)

Était-ce utile?

La solution

J'ai essayé cela et j'ai fourni ici un exemple BPEL pour appeler le service proxy suivant.Veuillez trouver les exemples d'artefacts de ici.Remarque - Vous devez obtenir une clé API auprès de bonnes lectures et remplacer par 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>

Autres conseils

Voici une configuration de proxy ESB qui a fonctionné pour moi pour une demande d'obtention.

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

Ceci est pour une demande postale

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

BTW Voulez-vous dire que vous avez accédé avec succès ce service proxy via Gadget Server, mais pas via BPS?Pouvez-vous poster la configuration proxy ESB et les journaux d'erreur que vous avez obtenus de BPS?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top