BPS上のBPELプロセスからESB上で実行されているRESTプロキシサービスを呼び出す方法

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

  •  14-12-2019
  •  | 
  •  

質問

私はBPSを設定し、アプリケーションサーバー上のサービスを呼び出すために使用できるいくつかのBPELプロセスを作成しました。私はESB上にRESTプロキシサービスを作成し、エンドポイントをLabVIEWサーバーに使用しました。 LabVIEWでは、毎秒ランダムな値を生成する非常に基本的なRESTサービスがあります。次のhttp://localhost:8000/Maths/randomのようにRESTサービスにアクセスできます。これにより、ランダム値

でフォロー出力が発生します。
RValue:19.000000
.

私はガジェットサーバーを通してこのサービスにアクセスし、WSO2グラフィックフレームワークを使用して値をグラフとして表示することに成功しました。

しかし、私はBPELプロセスから同じプロキシサービスを呼び出すことを試みるときに問題があります。私はESBからプロキシサービスのためのWSDLファイルを生成しました。このWSDLファイルはポート接続などに使用されます。パラメータや要素の「仲介」操作を1つだけ持っています。 BPSサーバーのチュートリアルがサービスを呼び出すためのいくつかのチュートリアルに従いましたが、これまでのところ成功はありませんでした。 これがどのように行うことができるか私を同様のチュートリアルに指摘することができるか私に誰かが私に見せることができますか? 多くの感謝。

u Raza. 以下はBPSエラーです

[2012-03-15 18:22:22:33,265]情報 - BPELSERVERIMPL - 登録プロセス{ http://areasearvice.bpel .bps } areavice-14。 [2012-03-15 18:22:22:42,282] info-carbonauthenticatil - 'admin'はIPアドレス143.53.207.235からの[2012-03-15 18:22:42,0282]でログインした。 [2012-03-15 18:23:09,041]エラー - BpelObjectFactory $ BOMSAXERRORHANDLER - NULL:ファイル:///d:/ esb/wso2/wso2bps-2.1.0/tmp/work/bpeltemp/1.33183578879275E12/bpeltemp/1.331835788879275E12/bpelrest/RestfulProxy .bpel:88:56:CVC-Complex-Type.3.2.2:属性 'XML:Space'は、要素 'BPEL:Literal'に表示されません。 [2012-03-15 18:23:23:09,043] warn - BPELObjectFactory - 解析中の検証エラー、-dorg.apache.ode.compiler.FailOnValidationErrors= falseスイッチ [2012-03-15 18:23:09,046] info - bpelc - info:[CompilingProcess] BPELプロセスをコンパイルします。 [2012-03-15 18:23:09,116] info - wsdlregistry - at file:/ d:/ esb/wso2/wso2bps-2.1.0/tmp/work/bpeltemp/1.3318357879275e12/bpelrest/getlvrandomproxy.wsdlは、重複インポート、あなたの文書はすべて異なる名前空間にあるべきです(それは素晴らしくないがまだ動作します)。 [2012-03-15 18:23:09,116] info - wsdlregistry - file:/ d:/ esb/wso2/wso2bps-2.1.0/tmp/work/bpeltemp/1.3318357879275e12/bpelrest/getlvrandomproxy.wsdlはすでに既にあります。インポートされた、これは円形の参照を表します。 [2012-03-15 18:23:09,134]エラー - BPELC - ファイル:/ d:/ esb/wso2/wso2bps-2.1.0/tmp/work/bpeltemp/1.3318357879275E12/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.compliationException:エラー:[CompulationErrors]コンパイルが2エラーで完了しました。 ファイル:/ d:/ esb/wso2/wso2bps-2.1.0/tmp/work/bpeltemp/1.33183578879275E12/BPELRest/RestfulProxy.BPEL:72:エラー:[CopyToMessageFromNonMessage]メッセージ変数RestProxyPlreQuest Rtsのメッセージが必要です値。 file:/ d:/ esb/wso2/wso2bps-2.1.0/tmp/work/bpeltemp/1.3318357879275E12/BPELREST / RestFulProxy.BPEL:95:エラー:[CopyFrommessAgetOnonMessage]メッセージ変数RestProxyPlResponseからのコピーには、L-のメッセージが必要です。値。 org.apache.ode.bpel.compiler.bpelCompiler.compileで(BPELCompiler.java:815) org.apache.ode.bpel.compiler.bpelc.compileで(bpelc.java:278) org.apache.ode.bpel.compiler.bpelc.compileで(bpelc.java:364) org.apache.ode.store.deploymentunitdir $ 5.run(deploymentunitdir.java:213) org.apache.ode.utils.internpool.runblock(InternPool.java:57) org.apache.ode.store.deploymentunitdir.compileで(deploymentunitdir.java:210) org.apache.ode.store.deploymentunitdir.compileで(deploymentunitdir.java:169) org.wso2.carbon.bpel.ui.fileupload.bpeluploadexecutor.validateBpelpackage(bpeluploadexecutor.java:262) org.wso2.carbon.bpel.ui.fileupload.bpeluploadexecutor.execute(bpeluploadexecutor.java:101) org.wso2.carbon.ui.transports.fileupload.abstractFileUploadExecutor.executegeneric(AbstractFileUploadExecutor.java:105) org.wso2.carbon.ui.Transports.FileUpload.FileUploadexeCutorManager $ CarbonXMLFileUploadExeChandler.execute(fileUploadExecutormanager.java:392) org.wso2.carbon.ui.transports.fileupload.FileUploadExecutormanager $ fileUploadExecutionHandlermanager.startexec(FileUploadExecutormanager.java:276) org.wso2.carbon.ui.transports.fileupload.fileuploadexecutormanager.execute(FileUploadExecutormanag.

er.java:125) org.wso2.carbon.ui.transports.fileuploadservlet.dopost(fileUploadServlet.java:57) javax.servlet.http.httpservlet.service(httpservlet.java:641) javax.servlet.http.httpservlet.service(httpservlet.java:722) org.eclipse.equinox.http.helper.contextPathServletAdaptor.Service(contextPathServletAdaptor.java:36) org.eclipse.equinox.http.servlet.internal.servletration.handlequest(servletRegistration.java:90) org.eclipse.equinox.http.servlet.internal.proxyServlet.processalias(ProxyServlet.java:111) org.eclipse.equinox.http.servlet.internal.proxyServlet.service(proxyServlet.java:67) javax.servlet.http.httpservlet.service(httpservlet.java:722) org.wso2.carbon.bridge.bridgeservlet.service(bridgeservlet.java:155) javax.servlet.http.httpservlet.service(httpservlet.java:722) org.apache.catalina.core.applicationFilterChain.InternalDoFilter(ApplicationFilterChain.java:304) org.apache.catalina.core.applicationFilterChain.Dofilter(ApplicationFilterChain.java:210) org.apache.catalina.Core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) org.apache.catalina.Core.StandardContextValve.invoke(StandardContextValve.java:164) org.apache.catalina.authenticator.authenticatorBase.Invoke(AuthenticatorBase.java:462) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) org.apache.catalina.valves.errorReportValve.invoke(errorReportValve.java:100) org.wso2.carbon.server.TomCatServer $ 1.invoke(Tomcatserver.java:241) org.apache.catalina.valves.accesslogvalve.invoke(accesslogvalve.java:563) org.apache.catalina.Core.StandardEngineValve.invoke(StandardEngineValve.java:118) org.apache.catalina.connector.coyoteAdapter.Service(CoyoteAdapter.java:399) org.apache.coyote.http11.http11nioprocessor.process(http11nioprocessor.java:396) org.apache.coyote.http11.http11nioprotocol $ HTTP11ConnectionHandler.process(http11nioprotocol.java:356) org.apache.tomcat.util.net.nioEndpoint $ socketprocessor.run(NioEndpoint.java:1534) java.util.concurrent.threadpoolexecutor $ worker.runtask(不明ソース) java.util.concurrent.threadpoolexecutor $ worker.run(不明ソース) java.lang.thread.run(Unknown Source)

役に立ちましたか?

解決

私はこれを試してみました、そして、私は次のプロキシサービスを呼び出すためのBPELサンプルを提供しました。ここでのアーティファクトを見つけてください。 注 - goodreads からAPIキーを入手する必要があります。

<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プロキシ構成です。

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

BTWあなたがGadget Serverを介してそのプロキシサービスに正常にアクセスしたが、BPS経由ではないと言うことを意味しましたか?ESBプロキシ構成とあなたがBPSから得たエラーログを投稿できますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top