我正在使用带有eclipse-wtp插件的gradle包装器5.1.1来构建多模块EAR。我正在将该项目作为Eclipse中现有的gradle项目导入,并且没有错误。但是,一旦我尝试在WebSphere 8.5.5中部署应用程序,就会收到以下错误:
[2/5/19 12:00:09:566 CST] 00000154 wtp E org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchiveFactoryImpl createTempZipFileStrategyIfPossible Failed to open input stream on target [ WEB-INF/lib/ServiceBusiness.jar ].
Failed to create temporary file.
A nested strategy will be used, but this usually slows performance dramatically.
...
...
Caused by: com.ibm.ws.exception.RuntimeWarning: java.io.FileNotFoundException: Unable to obtain binaries path for [ NestedArchiveLoadStrategy [ -1512854742 ] URI [ WEB-INF/lib/ServiceBusiness.jar ] Container [ 391870138 ] Open [ true ] ]
如果我使用gradle构建应用程序,它可以很好地部署并且可以正常工作。
经过研究,我发现问题是由于gradle创建项目的类路径的方式造成的。
对于该解决方案,我有一种解决方法,其中涉及取消选中Allow output folders for source folders
复选框,然后成功部署应用程序。但这导致所有开发人员每次刷新gradle项目时都必须手动纠正eclipse中的类路径。
是否有任何方法可以使它正常运行?
项目结构如下:
Service.ear
+
+--->Service.war
+ +
| +-->ServiceBusiness.jar
+