Neo环境中的Java服务器无法启动

2020-09-18 19:17发布

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

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


嗨,

根据此处的指南:

https://medium.com/pacroy/running-spring-boot-application-on-sap-cloud-platform-ceede6d65106

我已经在这里下载了代码,并将其构建为战争文件。

https://github.com/pacroy/spring-boot-helloscp

然后,我将战争部署到了我的新环境中。 启动应用程序后,它会分配环境,但会无限期挂起。

其中一个日志文件如下所示:


 2018 06 11 22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:180)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at org.apache.juli.logging.DirectJDKLog.debug(DirectJDKLog.java:103)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1154)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at org.slf4j.bridge.SLF4JBridgeHandler.getSLF4JLogger(SLF4JBridgeHandler.java:198)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at org.slf4j.bridge.SLF4JBridgeHandler.publish(SLF4JBridgeHandler.java:293)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at java.util.logging.Logger.log(Logger.java:738)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at java.util.logging.Logger.doLog(Logger.java:765)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at java.util.logging.Logger.logp(Logger.java:931)| 

最后一部分位于底部:
 2018 06 11 22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at sun.rmi.runtime.Log $ LoggerLog.log(Log.java:229)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at sun.rmi.transport.tcp.TCPConnection.close(TCPConnection.java:219)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:597)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run0(TCPTransport.java:826)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.lambda $ run $ 0(TCPTransport.java:683)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at java.security.AccessController.doPrivileged(本机方法)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run(TCPTransport.java:682)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at java.lang.Thread.run(Thread.java:808)|  

顶部重复多次,直到到达最后。

垃圾收集日志如下:

 2018-06-11T22:53:06.936 + 0000:6.091:[GC(CMS初始标记)2018-06-11T22:53:06.936 + 0000:6.091:[GC(CMS初始标记)6.091:[ParNew:  136862K-> 13193K(189952K),0.0774287秒] 136862K-> 13193K(1234432K),0.0774859秒] [时间:用户= 0.04 sys = 0.00,实际= 0.08秒]
 [1 CMS初始标记:0K(1044480K)] 13193K(1234432K),0.0940998秒] [时间:用户= 0.05 sys = 0.00,真实= 0.10秒]
 2018-06-11T22:53:07.044 + 0000:6.199:[CMS-concurrent-mark-start]
 2018-06-11T22:53:07.055 + 0000:6.210:[CMS并发标记:0.011/0.011秒] [时间:用户= 0.01 sys = 0.00,实际= 0.01秒]
 2018-06-11T22:53:07.083 + 0000:6.237:[CMS-concurrent-preclean-start]
 2018-06-11T22:53:07.085 + 0000:6.239:[CMS-concurrent-preclean:0.001/0.001 secs] [时间:user = 0.00 sys = 0.00,real = 0.00 secs]
 2018-06-11T22:53:07.085 + 0000:6.239:[CMS-concurrent-abortable-preclean-start]
 2018-06-11T22:53:09.101 + 0000:8.255:[CMS-concurrent-abortable-preclean:1.634/2.016 secs] [时间:用户= 1.79 sys = 0.06,真实= 2.02秒]
 2018-06-11T22:53:09.101 + 0000:8.255:[GC(CMS结束语)[YG占用率:100172 K(189952 K)] 8.256:[重新扫描(平行),0.0467687秒] 8.302:[弱引用处理,  0.0000982秒] 8.302:[类卸载,0.0034457秒] 8.306:[擦洗符号表,0.0043437秒] 8.310:[擦洗字符串表,0.0008146秒] [1 CMS备注:0K(1044480K)] 100172K(1234432K),0.0563585秒 ] [时间:用户= 0.05 sys = 0.00,真实= 0.06秒]
 2018-06-11T22:53:09.165 + 0000:8.319:[CMS-concurrent-sweep-start]
 2018-06-11T22:53:09.165 + 0000:8.319:[CMS并发扫描:0.000/0.000秒] [时间:用户= 0.00 sys = 0.00,实际= 0.01秒]
 2018-06-11T22:53:09.165 + 0000:8.319:[CMS-concurrent-reset-start]
 2018-06-11T22:53:09.190 + 0000:8.345:[CMS并发重置:0.022/0.025秒] [时间:用户= 0.01 sys = 0.02,实际= 0.02秒]
 2018-06-11T22:53:09.923 + 0000:9.077:[GC(分配失败)9.077:[新参数:184201K-> 8052K(189952K),0.0768536秒] 184201K-> 19261K(1234432K),0.0769170秒] [时间:  user = 0.07 sys = 0.01,real = 0.08 secs]
 2018-06-11T22:53:10.781 + 0000:9.935:[GC(分配失败)9.935:[新参数:179060K-> 11585K(189952K),0.0294688秒] 190269K-> 22794K(1234432K),0.0295479秒] [时间:  user = 0.03 sys = 0.00,real = 0.03 secs]
 2018-06-11T22:53:13.361 + 0000:12.516:[GC(分配失败)12.516:[新参数:182593K-> 4682K(189952K),0.0324057秒] 193802K-> 19258K(1234432K),0.0324760秒] [时间:  user = 0.03 sys = 0.00,real = 0.03 secs]
 2018-06-11T22:55:11.521 + 0000:130.675:[GC(分配失败)130.675:[新参数:175690K-> 3079K(189952K),0.0497712秒] 190266K-> 17654K(1234432K),0.0498596秒] [时间:  user = 0.03 sys = 0.00,real = 0.05 secs] 

另一个文件如下所示:

 FILE_TYPE:DAAA96DE-B0FB-4c6e-AF7B-A445F5BF9BE2
 FILE_ID:1528758813082
 编码:[UTF8 | NWCJS:ASCII]
 RECORD_SEPARATOR:124
 COLUMN_SEPARATOR:35
 ESC_CHARACTER:92
 栏:时间|严重性|记录器|线程|不适用|文本|
 SEVERITY_MAP:FINEST |信息| FINER |信息| FINE |信息| CONFIG |信息| DEBUG |信息| PATH |信息| INFO |信息|警告|警告|警告|错误|错误|严重|错误|致命|错误
 HEADER_END

 2018年06月11日23:13:42#INFO#LJS_OUTPUT#Thread-13 ## 23:13:42.283 [localhost-startStop-1]错误org.slf4j.helpers.Util-SLF4J:类路径包含多个SLF4J绑定。
 2018年6月11日23:13:42#INFO#LJS_OUTPUT#Thread-13 ## 23:13:42.289 [localhost-startStop-1]错误org.slf4j.helpers.Util-SLF4J:在[jar:file:/中发现绑定 usr/sap/ljs/bin/logback-classic.jar!/org/slf4j/impl/StaticLoggerBinder.class] |
 2018年06月11日23:13:42#INFO#LJS_OUTPUT#Thread-13 ## 23:13:42.290 [localhost-startStop-1]错误org.slf4j.helpers.Util-SLF4J:在[jar:file:/中发现绑定 usr/sap/ljs/webapps/helloscp/WEB-INF/lib/logback-classic-1.1.7.jar!/org/slf4j/impl/StaticLoggerBinder.class] |
 2018年06月11日23:13:42#INFO#LJS_OUTPUT#Thread-13 ## 23:13:42.291 [localhost-startStop-1]错误org.slf4j.helpers.Util-SLF4J:请参见http://www.slf4j。  org/codes.html#multiple_bindings进行解释。
 2018年06月11日23:13:42#INFO#LJS_OUTPUT#Thread-13 ## 23:13:42.553 [localhost-startStop-1]错误org.slf4j.helpers.Util-SLF4J:实际绑定的类型为[ch.qos  .logback.classic.util.ContextSelectorStaticBinder 

我可以看到的最后一个日志文件如下:

-
 VM版本:2017年11月29日10:19:58-81_REL-optU-linux amd64-6-bas2:297759(混合模式)

 时间:2018-06-1122:53:13
 点数:16411
 主机名:vsa4371811
 当前目录:/usr/sap/ljs
 ---
    :[140545891444480] 22:53:13 ***错误(:0):StackOverflowError
    :[140545929889536] 22:53:13 ***错误(:0):StackOverflowError
    :[140545891444480] 22:53:13 ***错误(:0):StackOverflowError
    :[140545929889536] 22:53:13 ***错误(:0):StackOverflowError
    :[140545891444480] 22:53:13 ***错误(:0):StackOverflowError 


我在另一个Spring Boot应用程序(我实际上试图运行的应用程序)中尝试了此方法,并获得了相同的结果。 我也尝试过使用Lite计算单元和Pro计算单元。 两者都设置为apache tomcat 8服务器。

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

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


嗨,

根据此处的指南:

https://medium.com/pacroy/running-spring-boot-application-on-sap-cloud-platform-ceede6d65106

我已经在这里下载了代码,并将其构建为战争文件。

https://github.com/pacroy/spring-boot-helloscp

然后,我将战争部署到了我的新环境中。 启动应用程序后,它会分配环境,但会无限期挂起。

其中一个日志文件如下所示:


 2018 06 11 22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:180)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at org.apache.juli.logging.DirectJDKLog.debug(DirectJDKLog.java:103)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1154)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at org.slf4j.bridge.SLF4JBridgeHandler.getSLF4JLogger(SLF4JBridgeHandler.java:198)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at org.slf4j.bridge.SLF4JBridgeHandler.publish(SLF4JBridgeHandler.java:293)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at java.util.logging.Logger.log(Logger.java:738)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at java.util.logging.Logger.doLog(Logger.java:765)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at java.util.logging.Logger.logp(Logger.java:931)| 

最后一部分位于底部:
 2018 06 11 22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at sun.rmi.runtime.Log $ LoggerLog.log(Log.java:229)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at sun.rmi.transport.tcp.TCPConnection.close(TCPConnection.java:219)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:597)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run0(TCPTransport.java:826)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.lambda $ run $ 0(TCPTransport.java:683)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at java.security.AccessController.doPrivileged(本机方法)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run(TCPTransport.java:682)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)|
 2018年06月11日22:53:13#INFO#LJS_OUTPUT#Thread-14 ## at java.lang.Thread.run(Thread.java:808)|  

顶部重复多次,直到到达最后。

垃圾收集日志如下:

 2018-06-11T22:53:06.936 + 0000:6.091:[GC(CMS初始标记)2018-06-11T22:53:06.936 + 0000:6.091:[GC(CMS初始标记)6.091:[ParNew:  136862K-> 13193K(189952K),0.0774287秒] 136862K-> 13193K(1234432K),0.0774859秒] [时间:用户= 0.04 sys = 0.00,实际= 0.08秒]
 [1 CMS初始标记:0K(1044480K)] 13193K(1234432K),0.0940998秒] [时间:用户= 0.05 sys = 0.00,真实= 0.10秒]
 2018-06-11T22:53:07.044 + 0000:6.199:[CMS-concurrent-mark-start]
 2018-06-11T22:53:07.055 + 0000:6.210:[CMS并发标记:0.011/0.011秒] [时间:用户= 0.01 sys = 0.00,实际= 0.01秒]
 2018-06-11T22:53:07.083 + 0000:6.237:[CMS-concurrent-preclean-start]
 2018-06-11T22:53:07.085 + 0000:6.239:[CMS-concurrent-preclean:0.001/0.001 secs] [时间:user = 0.00 sys = 0.00,real = 0.00 secs]
 2018-06-11T22:53:07.085 + 0000:6.239:[CMS-concurrent-abortable-preclean-start]
 2018-06-11T22:53:09.101 + 0000:8.255:[CMS-concurrent-abortable-preclean:1.634/2.016 secs] [时间:用户= 1.79 sys = 0.06,真实= 2.02秒]
 2018-06-11T22:53:09.101 + 0000:8.255:[GC(CMS结束语)[YG占用率:100172 K(189952 K)] 8.256:[重新扫描(平行),0.0467687秒] 8.302:[弱引用处理,  0.0000982秒] 8.302:[类卸载,0.0034457秒] 8.306:[擦洗符号表,0.0043437秒] 8.310:[擦洗字符串表,0.0008146秒] [1 CMS备注:0K(1044480K)] 100172K(1234432K),0.0563585秒 ] [时间:用户= 0.05 sys = 0.00,真实= 0.06秒]
 2018-06-11T22:53:09.165 + 0000:8.319:[CMS-concurrent-sweep-start]
 2018-06-11T22:53:09.165 + 0000:8.319:[CMS并发扫描:0.000/0.000秒] [时间:用户= 0.00 sys = 0.00,实际= 0.01秒]
 2018-06-11T22:53:09.165 + 0000:8.319:[CMS-concurrent-reset-start]
 2018-06-11T22:53:09.190 + 0000:8.345:[CMS并发重置:0.022/0.025秒] [时间:用户= 0.01 sys = 0.02,实际= 0.02秒]
 2018-06-11T22:53:09.923 + 0000:9.077:[GC(分配失败)9.077:[新参数:184201K-> 8052K(189952K),0.0768536秒] 184201K-> 19261K(1234432K),0.0769170秒] [时间:  user = 0.07 sys = 0.01,real = 0.08 secs]
 2018-06-11T22:53:10.781 + 0000:9.935:[GC(分配失败)9.935:[新参数:179060K-> 11585K(189952K),0.0294688秒] 190269K-> 22794K(1234432K),0.0295479秒] [时间:  user = 0.03 sys = 0.00,real = 0.03 secs]
 2018-06-11T22:53:13.361 + 0000:12.516:[GC(分配失败)12.516:[新参数:182593K-> 4682K(189952K),0.0324057秒] 193802K-> 19258K(1234432K),0.0324760秒] [时间:  user = 0.03 sys = 0.00,real = 0.03 secs]
 2018-06-11T22:55:11.521 + 0000:130.675:[GC(分配失败)130.675:[新参数:175690K-> 3079K(189952K),0.0497712秒] 190266K-> 17654K(1234432K),0.0498596秒] [时间:  user = 0.03 sys = 0.00,real = 0.05 secs] 

另一个文件如下所示:

 FILE_TYPE:DAAA96DE-B0FB-4c6e-AF7B-A445F5BF9BE2
 FILE_ID:1528758813082
 编码:[UTF8 | NWCJS:ASCII]
 RECORD_SEPARATOR:124
 COLUMN_SEPARATOR:35
 ESC_CHARACTER:92
 栏:时间|严重性|记录器|线程|不适用|文本|
 SEVERITY_MAP:FINEST |信息| FINER |信息| FINE |信息| CONFIG |信息| DEBUG |信息| PATH |信息| INFO |信息|警告|警告|警告|错误|错误|严重|错误|致命|错误
 HEADER_END

 2018年06月11日23:13:42#INFO#LJS_OUTPUT#Thread-13 ## 23:13:42.283 [localhost-startStop-1]错误org.slf4j.helpers.Util-SLF4J:类路径包含多个SLF4J绑定。
 2018年6月11日23:13:42#INFO#LJS_OUTPUT#Thread-13 ## 23:13:42.289 [localhost-startStop-1]错误org.slf4j.helpers.Util-SLF4J:在[jar:file:/中发现绑定 usr/sap/ljs/bin/logback-classic.jar!/org/slf4j/impl/StaticLoggerBinder.class] |
 2018年06月11日23:13:42#INFO#LJS_OUTPUT#Thread-13 ## 23:13:42.290 [localhost-startStop-1]错误org.slf4j.helpers.Util-SLF4J:在[jar:file:/中发现绑定 usr/sap/ljs/webapps/helloscp/WEB-INF/lib/logback-classic-1.1.7.jar!/org/slf4j/impl/StaticLoggerBinder.class] |
 2018年06月11日23:13:42#INFO#LJS_OUTPUT#Thread-13 ## 23:13:42.291 [localhost-startStop-1]错误org.slf4j.helpers.Util-SLF4J:请参见http://www.slf4j。  org/codes.html#multiple_bindings进行解释。
 2018年06月11日23:13:42#INFO#LJS_OUTPUT#Thread-13 ## 23:13:42.553 [localhost-startStop-1]错误org.slf4j.helpers.Util-SLF4J:实际绑定的类型为[ch.qos  .logback.classic.util.ContextSelectorStaticBinder 

我可以看到的最后一个日志文件如下:

-
 VM版本:2017年11月29日10:19:58-81_REL-optU-linux amd64-6-bas2:297759(混合模式)

 时间:2018-06-1122:53:13
 点数:16411
 主机名:vsa4371811
 当前目录:/usr/sap/ljs
 ---
    :[140545891444480] 22:53:13 ***错误(:0):StackOverflowError
    :[140545929889536] 22:53:13 ***错误(:0):StackOverflowError
    :[140545891444480] 22:53:13 ***错误(:0):StackOverflowError
    :[140545929889536] 22:53:13 ***错误(:0):StackOverflowError
    :[140545891444480] 22:53:13 ***错误(:0):StackOverflowError 


我在另一个Spring Boot应用程序(我实际上试图运行的应用程序)中尝试了此方法,并获得了相同的结果。 我也尝试过使用Lite计算单元和Pro计算单元。 两者都设置为apache tomcat 8服务器。

付费偷看设置
发送
1条回答
Nan4612
1楼-- · 2020-09-18 19:46

格雷顿,你好

您正在使用的项目在Neo兼容性方面存在一些问题。

1)Neo与成熟的Tomcat不同。 因此,必须使用SDK来开发Java应用程序,使其与Neo完全兼容。 Kepp谨记每个SDK都包含精简版的Tomcat或Web Profile,它们都符合JEE标准。 因此,您需要选择一个SDK而不是另一个SDK才能使用此规范。 查看。 选择SDK版本后,您可以将库添加到项目中。

2)Spring Boot已经在" spring-boot-starter-web"中包含了很多库。 但是,某些库与Neo SDK不兼容,因为它们已在SDK上提供给您。 因此,您需要删除它们以避免启动错误。

3)项目示例包含manifest.yml文件-该文件专门为Cloud Foundry环境而设计。 因此,整个项目应该可以在SCP-CF上进行任何修改,而不能在Neo上进行任何修改。

修改很简单!

请在此项目中检查pom.xml,并查看其依赖项。

请注意,您必须从引导程序的入门网站中删除嵌入的tomcat和logback。 然后,您需要添加一些在Neo SDK(版本3.x为Web Tomcat 8)上运行所需的库。 完成后,该项目应该不会有任何问题。

最后但并非最不重要的一点,在将其部署到Neo之前,请使用本地Web Tomcat 8服务器测试您的应用程序。 在大多数情况下,本地服务器将反映您的应用程序在Neo上可以找到的环境。

有两种使用方式:

A)在Eclipse中,通过转到菜单"新建"->"服务器"->"服务器",然后在" SAP"组下选择" Java Web Tomcat 8 Server",添加新服务器。 这将要求您事先下载SDK ,然后将其解压缩到您喜欢的位置。 在Eclipse上安装并配置后,您所需要做的就是添加应用程序并在本地运行它。 优点是您可以检查启动日志-通过Cockpit无法使用。

B)使用Maven插件。 为了使用maven插件,请检查您下载的SDK上的示例文件夹。 主要pom.xml包含有关如何启动本地SDK进行测试的详细说明。 您还可以使用maven将项目部署到Neo。

关于,
伊凡

一周热门 更多>