0

序章

SAP HANA Cloud Platform アカウントを持っています。また、Java アプリケーションをアカウントにデプロイし、ダミー データを返すテスト サーブレットを作成しました。

反対側には、WebIDE で開発した SAP UI5 アプリケーションがあります。2 つの宛先も作成しました。

  • 宛先「virtualTEST」は、SAP バックエンド システム (HANA Cloud Connector) に接続されています。
  • 宛先「javaTEST」は Java サーブレット アプリケーションに接続されています

neo-app.json は適切に構成されており、テスト サーブレット (ダミー データ) からデータを取得し、SAP バックエンド システム ( OData Gateway ) からデータを取得できます。

問題

ここで、変数を SAP バックエンド システム (virtualTEST) の宛先に渡したいと考えています。これは、 JavaScript の操作を避けるためにフロントエンドに表示されるべきではありません。

私の最初の考え

私の最初の考えは、プロキシとして機能する新しいサーブレットを作成することでした。SAPUI5 では、javaTEST 宛先からサーブレットを呼び出し、「隠し変数」を渡す/testServlet?targetUrl=https://webide-xxx.hana.ondemand.com/sap/opu/odata/TEST_SRV/TEST?$filter=Var eq '{{MYVAR}}'と、Java アプリケーションが {{MYVAR}} を実際の変数に置き換えます。次に、ターゲットがロードされます (これは、SAPUI5 アプリケーションへの宛先 URL でもあります)。これは機能しません。理由はわかりませんが、プロキシがアプリケーションの宛先からデータを取得できないと思います。

また、これは最善の解決策ではないと思います。これはどのように解決できますか?アイデアやベストプラクティスはありますか? Java アプリケーションで宛先を使用できますか? :)

4

1 に答える 1

0

あなたが何を達成したいのか、私にははっきりしていません。もちろん、Java から宛先を呼び出すことができます。

<resource-ref>
    <res-ref-name>myBackend</res-ref-name>
    <res-type>com.sap.core.connectivity.api.http.HttpDestination</res-type>
</resource-ref>

import javax.naming.Context;
import javax.naming.InitialContext;
import com.sap.core.connectivity.api.http.HttpDestination;
...

// coding to lookup the destination "myBackend"
Context ctx = new InitialContext();
HttpDestination destination = (HttpDestination) 
ctx.lookup("java:comp/env/myBackend");


    // coding to call service "myService" on the system configured in the given destination
    HttpClient createHttpClient = destination.createHttpClient();
    HttpGet get = new HttpGet("myService");
    HttpResponse resp = createHttpClient.execute(get);

公式ドキュメントより。HttpGet では、必要に応じて Params を設定できます。私の意見では、バックエンドは非常に保存されている必要があり、特に公開された OData サービスではなく、Javascript 操作について心配する必要はありません。

よろしくマティアス

于 2017-04-07T12:15:57.073 に答える