无法在Neo Cloud中启动Java应用程序

2020-09-14 01:32发布

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

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


我有一个Java项目,在我的SAP Cloud Platform NEO试用版中运行正常,没有任何问题。

现在,我将其部署到非试用版,但是当我尝试启动它时,它以以下消息结尾:

警报:无法启动应用程序proxyservlet:由于ICloudController服务匹配过滤器而无法启动VM:(&(objectclass = com.sap.core.cloud.controllers.api.ICloudController)(network.segment = sandbox_sap.c1.m2  )(service.pid = com.sap.core.cloudcontroller.rpc *)不可用!  

设置应该全部相同。

有人知道这可能会导致什么,如何找到解决方案? 还是至少要照看哪里?

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

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


我有一个Java项目,在我的SAP Cloud Platform NEO试用版中运行正常,没有任何问题。

现在,我将其部署到非试用版,但是当我尝试启动它时,它以以下消息结尾:

警报:无法启动应用程序proxyservlet:由于ICloudController服务匹配过滤器而无法启动VM:(&(objectclass = com.sap.core.cloud.controllers.api.ICloudController)(network.segment = sandbox_sap.c1.m2  )(service.pid = com.sap.core.cloudcontroller.rpc *)不可用!  

设置应该全部相同。

有人知道这可能会导致什么,如何找到解决方案? 还是至少要照看哪里?

付费偷看设置
发送
3条回答
我是小鹏鹏啊
1楼-- · 2020-09-14 01:41

史蒂芬,你好

您是否已更新pom.xml以避免使用Web Profile Neo SDK? 原始的Git项目正在使用版本1.44.0.1上的运行时。 此运行时版本引用自2017年12月起已弃用的SDK ,该SDK过去曾在JVM 1.6中运行。

我已经这样更新了pom.xml:

...。
 <属性>
  1.7 
  2.142.8 
 ....
 
 ....
 <依赖性>
  com.sap.cloud 
  neo-javaee6-wp-api 
  $ {hcp.sdk.version} 
 提供
 
 

然后通过运行'mvn clean install'创建一个新的war文件,您应该可以将其部署在生产性neo帐户上。

BTW:在Java和html5应用程序中,不再需要代理servlet以避免交叉源策略。 您可以简单地调用连接目标服务。 在HTML5中,您可以通过neo-app.json文件中的路由器执行此操作,而在Java中,您可以通过在web.xml中定义的JNDI直接调用它。

 <资源参考>
  connectivityConfiguration 
  com.sap.core.connectivity.api.configuration.ConnectivityConfiguration 
 
 

然后,您可以在代码中按以下名称检索目的地:

//查找连接配置API
 上下文ctx = new InitialContext();
 ConnectivityConfiguration配置=(ConnectivityConfiguration)ctx.lookup(" java:comp/env/connectivityConfiguration");

//获取" destinationName"的目标配置
 DestinationConfiguration destConfiguration = configuration.getConfiguration(destinationName);
 

我建议您下载" Java Web Tomcat 8" SDK ,并查看示例目录。 在那里,您将找到一个名为Connectivity的Maven项目,其中包含一个有效的示例。

关于,
伊凡

callcenter油条
2楼-- · 2020-09-14 01:53

嗨,斯特凡,

您需要调用此CDN地址来引导您的应用程序吗?

如果这是您所需要的,那么您就不需要避免跨源策略。 允许HTML5应用程序使用CDN地址执行引导。 跨源策略发生在应用程序本身尝试通过调用其他站点来遍历自己的边界时–这将使开发人员能够给用户一种感觉,使该应用程序在一个站点上运行,而在后台从另一个站点注入代码。 引导过程不会以这种方式发生。 它是通过加载index.html文件在应用程序生命周期开始之前发生的。 我的意思是说,使用script标签,开发人员无法对他人隐藏恶意代码。 每个人都可以在这里看到。 看看此如何在SAP-上使用AngularJS框架的教程 CP。 如果您查看教程页面,您还将找到一个适用于ReactJS的页面。

现在,如果您不打算在引导阶段加载外部脚本,那么也许您应该研究html5库的概念。 在SAPUI5中,您可能需要将外部库与应用程序一起加载(我更喜欢加载其缩小版本)。 对于SAPUI5,我们将语句" sap.ui.define"中的库称为依赖项。 这将在此位置(仅在需要的地方)加载相关库。 我确信其他框架确实具有声明这种依赖关系的类似形式。

能否请您给出一个更具体的用例,以便我们更好地为您指明正确的方向?

关于,
伊万

昵称总是被占用
3楼-- · 2020-09-14 01:53

嗨伊万,

这就是我要问自己的问题,如果确实需要这样的Java应用程序(或可能的解决方法?)。

我使用目标连接到CDN地址并从那里获取json文件。 使用api_key和access_token进行身份验证。 目前,所有内容(如URI参数)都在目标中进行了硬编码,但稍后应由应用程序/最终用户在HTML5内部进行控制。 交付的内容是灵活而动态的-因此,我将必须解析JSON以识别内容的结构,并在以后进行呈现。

第二点是,例如,我必须首先连接到.../elements/

找出可用的内容。 .../elements/contentA/和.../elemtents/contentB/的更高版本,用于获取包含数据的JSON文件。

因此,我的CDN的目标不是传递脚本或可执行代码,而只是传递JSON文件形式的数据。

能否仅通过使用目的地而不需要Java应用程序来实现?

最好的问候

Stefan

一周热门 更多>