@@ -224,7 +224,9 @@ public void extractExecutableJar(File destDirectory, boolean remotePipeline)
224224 {
225225 try (JarFile jar = new JarFile (verifyJar ()))
226226 {
227- boolean foundDistributionZip = false ;
227+ boolean missingDistributionZip = true ;
228+ boolean missingBootstrapJar = remotePipeline ;
229+ boolean missingServletApiJar = remotePipeline ;
228230 var entries = jar .entries ();
229231 while (entries .hasMoreElements ())
230232 {
@@ -233,22 +235,24 @@ public void extractExecutableJar(File destDirectory, boolean remotePipeline)
233235
234236 if ("labkey/distribution.zip" .equals (entryName ))
235237 {
236- foundDistributionZip = true ;
238+ missingDistributionZip = false ;
237239 try (var distInputStream = jar .getInputStream (entry ))
238240 {
239241 extractDistributionZip (distInputStream , destDirectory );
240242 }
241243 }
242244 if (remotePipeline )
243245 {
246+ // Keep this code in sync with org.labkey.pipeline.api.PipelineServiceImpl.extractBootstrapFromEmbedded()
244247 if (entry .getName ().contains ("labkeyBootstrap" ) && entry .getName ().toLowerCase ().endsWith (".jar" ))
245248 {
246249 try (var in = jar .getInputStream (entry ))
247250 {
248251 extractFile (in , new File (destDirectory , "labkeyBootstrap.jar" ));
249252 }
253+ missingBootstrapJar = false ;
250254 }
251- if (entry .getName ().contains ("tomcat-servlet-api " ) && entry .getName ().toLowerCase ().endsWith (".jar" ))
255+ if (entry .getName ().contains ("tomcat-embed-core " ) && entry .getName ().toLowerCase ().endsWith (".jar" ))
252256 {
253257 File pipelineLib = new File (destDirectory , "pipeline-lib" );
254258 if (!pipelineLib .exists ())
@@ -262,14 +266,23 @@ public void extractExecutableJar(File destDirectory, boolean remotePipeline)
262266 {
263267 extractFile (in , new File (pipelineLib , "servletApi.jar" ));
264268 }
269+ missingServletApiJar = false ;
265270 }
266271 }
267272 }
268273
269- if (! foundDistributionZip )
274+ if (missingDistributionZip )
270275 {
271276 throw new ConfigException ("Unable to find distribution zip required to run LabKey Server." );
272277 }
278+ if (missingBootstrapJar )
279+ {
280+ throw new ConfigException ("Unable to find labkeyServer.jar required to run LabKey Server's remote pipeline code." );
281+ }
282+ if (missingServletApiJar )
283+ {
284+ throw new ConfigException ("Unable to find Servlet API file required to run LabKey Server's remote pipeline code." );
285+ }
273286 }
274287 }
275288 catch (IOException | ConfigException e )
0 commit comments