How to launch backendApplicationContribution then frontendApplicationContribute in a sync mode

l want launch a JAVA application which will listening 8081 port(using process.exec() command in backendApplicationContribution~initialize() method ), and in ModelServerFrontendContribution l register a workspaceService,when workspace changed, it will call a http request to 8081 port, but the java app now doesnot launch successfully, did have some method to launch backendApplication successfully, then begin to launch FrontendApplicationContributions,thanks!

`export class ModelServerFrontendContribution implements FrontendApplicationContribution {
@inject(WorkspaceService) protected readonly workspaceService: WorkspaceService;
@inject(TheiaModelServerClientV2) protected readonly modelServerClient: TheiaModelServerClientV2;

configure(_app: FrontendApplication): MaybePromise<void> {
    return this.setup();

async setup(): Promise<void> {
    this.workspaceService.onWorkspaceChanged(workspace => {
        if (workspace[0] && workspace[0].resource) {
            const workspaceRoot = new URI(workspace[0].resource.toString());
            const uiSchemaFolder = workspaceRoot.clone().segment('.ui-schemas');
            this.modelServerClient.configureServer({ workspaceRoot, uiSchemaFolder });