通过SAP WEB DISPATCHER将URL包含的/sap/opu/Odata/重定向到网关服务器不起作用

2020-08-16 20:48发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨团队 我们目前正在开发a...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨团队

我们目前正在开发ap ep 7.5版本。 我们开发了一个UI5应用程序,部署在SAP门户中。 UI5应用程序使用Odata URL。 我们通过进行以下代码2中所示的jquery ajax调用来使用此Odata URL。

因为我们分别有开发服务器/质量服务器和生产服务器以及相应的网关服务器。必须将应用程序从开发门户移至Quailty门户,我们必须更改网关服务器URL,以在URL中合并质量网关服务器的主机名和端口。

为了避免更改Odata URL来合并相应的主机和端口,我们考虑使用URL的相对路径并配置sap Web调度程序,以便Web调度程序将URL重定向到相应的网关系统。 webdispatcher配置显示在代码1中。

以下是在webdispatcher的操作文件中所做的修改。

代码1. SAP WEBDISPATCHER

#-------- REDIRECTURLS ------------------------------
 RegIRedirectUrl/sap/opu/odata/(.*)http://cvcm****rg01.***corp.***universe.com:8000/
 #----------------------------------------------- 
   

但是Http请求没有修改,我们收到404错误,因为使用相对URL路径的ajax调用指向的是同一台服务器,如下所示。

在对odataURL的相对路径进行ajax jQuery调用时,即对我的Development Portal Server进行了调用,如下所示。

" http://development_portal_server_host:50000/sap/opu/odata/sap/Z ** S_SPA_RELEASED_PO_LIST_SRV/PO_LISTSet/?$ filter = PLoginid eq'M19800'和POpt eq'A'";  

完整的ODATA URL

 http://cvcm****rg01.***corp.***universe.com:8000/sap/opu/odata/sap/Z ** S_SPA_RELEASED_PO_LIST_SRV/PO_LISTSet/?$ filter = PLoginid eq'  M19800"和POpt等式" A" 

相关ODATA URL

/sap/opu/odata/sap/Z ** S_SPA_RELEASED_PO_LIST_SRV/PO_LISTSet/?$ filter = PLoginid eq'M19800'和POpt eq'A'

此ajax调用导致404错误。

代码2:从UI5控制器调用AJAX

 var complete_Url =" http://cvcm****rg01.***corp.***universe.com:8000/sap/opu/odata/sap/Z ** S_SPA_RELEASED_PO_LIST_SRV/PO_LISTSet/?$ filter  = PLoginid eq'M19800'和POpt eq'A'";

 var relative_url ="/img/sap/opu/odata/sap/Z ** S_SPA_RELEASED_PO_LIST_SRV/PO_LISTSet/?$ filter = PLoginid eq'M19800'和POpt eq'A'";
 var invoiceModel = null;
 var l_MatList_input_injsonformat ="";
 var aData = jQuery.ajax({
 类型:" GET",
 网址:relative_url,
 jsonpCallback:'getJSON',
 数据:l_MatList_input_injsonformat,
 dataType:" json",
 beforeSend:function(jqXHR,settings){
 },
 错误:功能(xhr,ajaxOptions,throwError)
 {
 console.log(xhr.status);
 console.log(xhr.responseText);
 },
 异步:是的,
 成功:功能(数据,textStatus,jqXHR)
 {
 console.log(data);
 var POLISTMODEL = new sap.ui.model.json.JSONModel();
 POLISTMODEL.setData(data);
 g_var_HomeViewPointer.getView()。setModel(POLISTMODEL," POLISTMODEL");
 }
 });
 

请帮助并做有需要的人。

致谢

Govardan

3条回答
奄奄一息的小鱼
2020-08-16 21:27 .采纳回答

请您仔细阅读本文档,您当前的配置错误。

https://wiki.scn.sap.com/wiki/display/SI/Configuring+the+Web+Dispatcher+for+Multiple+Systems+-+说明+和+示例

通常这已经足够了。

3.1 SRCURL

可用于定义后端系统,以根据最终用户访问的URI路径(URL)转发请求。 例如,Web Dispatcher用于两个系统:ABAP和Java。

 wdisp/system_0 = SID = ABA,MSHOST = abap-srv,MSPORT = 8100,SRCURL =/sap;/nwbc
 wdisp/system_1 = SID = JAV,MSHOST = java-srv,MSPORT = 8101,SRCURL =/
 

一周热门 更多>