点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
Hello SAP社区
我有一个部署在SCP上的JAVA应用程序,并且希望通过该应用程序从内部OnPremise系统访问OData服务。 为了实现这一目标,我仔细阅读了以下SAP教程/指南:
最初,我在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)
亲爱的布拉赞科,
这是指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
你好Barnabás
感谢您的回复。 但是令我感到恼火的是,我从以下链接中以1:1的方式采用了SAP的示例:
https://help.sap .com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/en-US/474eae1b69c9434b9dce0314b8d2b6b1.html
我唯一更改的是JAVA类名称以及目标名称。 其他所有内容均在教程/示例中进行了描述。 那应该起作用,对吗? 如果没有,您是否还有其他示例或代码段? 很难找到另一个符合我要求的解决方案。
最诚挚的问候,
布拉赞科·巴比奇
一周热门 更多>