从HCP Java应用程序访问OnPremise OData服务

2020-09-12 14:38发布

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

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


Hello SAP社区

我有一个部署在SCP上的JAVA应用程序,并且希望通过该应用程序从内部OnPremise系统访问OData服务。 为了实现这一目标,我仔细阅读了以下SAP教程/指南:

https://help.sap .com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/en-US/474eae1b69c9434b9dce0314b8d2b6b1.html

最初,我在SCP上部署了JAVA应用程序,然后在本地(本地主机)安装了Cloud Connector,并成功将Cloud Connector与我的SCP(试用)帐户连接/映射:

在"访问控制"选项卡中,我添加了URL路径"/",并选择了访问策略"路径和所有子路径"。 这样,我就可以访问所有路径。

此后,我在"目的地"下的SCP中配置了目的地:

插入的URL与云连接器中的虚拟主机名相同。 位置ID还将与Cloud Connector中的位置ID同步。

出于测试目的,我还通过模板实现了UI5应用程序,并通过目标成功将OnPremise系统与UI5应用程序链接。 接下来,我将UI5应用程序部署在SCP上,并将UI5应用程序注册到示例Fiori Launchpad。 到目前为止,一切都很好并且运行良好-OnPremise系统中的数据显示在我的UI5应用程序中。

但是现在,如果我在SCP上运行Java应用程序,则会收到以下错误响应:

无法通过代理建立隧道。 代理返回"不允许使用HTTP/1.1 405方法"

云连接器中没有错误日志,这表明我的JAVA应用程序甚至没有进入云连接器。 我的JAVA代码与上述指南/教程完全相同。 你们中的任何人是否已经面临过这个或类似的问题,并且知道解决方案或有提示?

(21.8 kB)

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

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


Hello SAP社区

我有一个部署在SCP上的JAVA应用程序,并且希望通过该应用程序从内部OnPremise系统访问OData服务。 为了实现这一目标,我仔细阅读了以下SAP教程/指南:

https://help.sap .com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/en-US/474eae1b69c9434b9dce0314b8d2b6b1.html

最初,我在SCP上部署了JAVA应用程序,然后在本地(本地主机)安装了Cloud Connector,并成功将Cloud Connector与我的SCP(试用)帐户连接/映射:

在"访问控制"选项卡中,我添加了URL路径"/",并选择了访问策略"路径和所有子路径"。 这样,我就可以访问所有路径。

此后,我在"目的地"下的SCP中配置了目的地:

插入的URL与云连接器中的虚拟主机名相同。 位置ID还将与Cloud Connector中的位置ID同步。

出于测试目的,我还通过模板实现了UI5应用程序,并通过目标成功将OnPremise系统与UI5应用程序链接。 接下来,我将UI5应用程序部署在SCP上,并将UI5应用程序注册到示例Fiori Launchpad。 到目前为止,一切都很好并且运行良好-OnPremise系统中的数据显示在我的UI5应用程序中。

但是现在,如果我在SCP上运行Java应用程序,则会收到以下错误响应:

无法通过代理建立隧道。 代理返回"不允许使用HTTP/1.1 405方法"

云连接器中没有错误日志,这表明我的JAVA应用程序甚至没有进入云连接器。 我的JAVA代码与上述指南/教程完全相同。 你们中的任何人是否已经面临过这个或类似的问题,并且知道解决方案或有提示?

(21.8 kB)
付费偷看设置
发送
2条回答
梦想连接
1楼-- · 2020-09-12 15:00

亲爱的布拉赞科,

这是指servlet尝试直接通过SCP的代理与外部Internet通信(而不是连接到Cloud Connector)。 这就是为什么在ljs_trace中没有描述此错误的原因,但是可以在localhost_http_access .log中找到它。 消息" HTTP/1.1 405方法不允许"本身意味着http方法不是GET或POST请求。

我不确定为什么将此呼叫转移到代理。

我认为应该在servlet代码中调查问题。 它发生在例如 您在Servlet中拥有自己的SSLContext和SSLSocketFactory的情况,但是此机制由目标自动完成。 实际上,如果您尝试手动进行操作,则会对数据进行两次加密。 这可以解释该错误。 代理收到一些"加密的垃圾",而不是预期的" GET/sap/opu/odata/<...>"。 因此,代理服务器没有看到诸如" GET"或" POST"之类的熟悉方法,而是看到了一些"垃圾"(=加密数据)并以"不允许的方法"进行响应。

另外,我还找到了一个具有类似问题的答案线程,其逻辑也与我的描述(双重记名)有关: https://archive.sap.com/discussions/thread/3932895

可能您有不同的错误情况,但是您可能会从中收集一些提示。 我希望它能有所帮助。

最好的问候,
BarnabásPaksi

haha101010
2楼-- · 2020-09-12 15:08

你好Barnabás

感谢您的回复。 但是令我感到恼火的是,我从以下链接中以1:1的方式采用了SAP的示例:

https://help.sap .com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/en-US/474eae1b69c9434b9dce0314b8d2b6b1.html

我唯一更改的是JAVA类名称以及目标名称。 其他所有内容均在教程/示例中进行了描述。 那应该起作用,对吗? 如果没有,您是否还有其他示例或代码段? 很难找到另一个符合我要求的解决方案。

最诚挚的问候,

布拉赞科·巴比奇

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答