Skip to Content

Set Up SAP Business Application Studio for CAP Java

Set up the SAP Business Application Studio and create a first service implementation.
You will learn
  • What is SAP Business Application Studio
  • How to create a project skeleton for a CAP Java project
  • How to expose ports of the application in SAP Business Application Studio to the internet.
renejeglinskyRené JeglinskyNovember 9, 2022
Created by
April 14, 2020


First things first, you need to set up your development environment and check that everything is running smoothly.

For this tutorial, we use the SAP Business Application Studio as the development tool of choice. SAP Business Application Studio provides a web-based Visual Studio Code-like experience. So, it’s like VS Code, but for your browser.

What’s great about using SAP Business Application Studio?

You get an editor, useful extensions and all the tools required to develop CAP applications and full access to the terminal.

To make sure that everything is set up correctly, this tutorial also includes how to build and run a simple Hello World application. The SAP Cloud Application Programming Model (CAP) supports both Java and Node.js development. But for this tutorial, we’re using Java. The CAP Java SDK is able to tightly integrate with Spring Boot, which provides numerous features out of the box. This means, Spring Boot will be your runtime container.

For a general overview about CAP, you might also want to have a look at the official CAP documentation and the CAP Community.

  • Step 1

    Before you can start using SAP Business Application Studio, you need to create your developer space, where your project will run. Depending on the application you want to develop, you can create different types of dev spaces.

    For this tutorial, you will create a dev space personalized for building services and applications with CAP.

    Before you begin, check the settings of your browser. You need to add domains and to the list of the exceptions to enable pop-ups and new tabs and disable the ad blocker extension if you use one.

    1. Go to the SAP BTP Cockpit on Trial.

    2. Choose SAP Business Application Studio under Quick Tool Access.

      enter subaccount
    3. On the welcome page choose Create Dev Space.

    4. Choose CAPTutorial as the name for your dev space and Full Stack Cloud Application as the application type. Continue with Create Dev Space.

      choose space name and type

      By selecting Full Stack Cloud Application, your space comes with several extensions out of the box that you will need to develop CAP applications. For example, CDS tools are built in. This saves unnecessary setup time.
      The creation of the dev space takes a few seconds.

    5. When it’s ready, open your dev space by clicking on the name.

      open dev space

      Please note that you’re using the trial version of SAP Business Application Studio. See section Restrictions in the SAP Business Application Studio documentation for more details on how your development environment can be affected.

  • Step 2
    1. Change the color theme to your preferences.

      Go to File Preferences Color Theme and choose an item from the list. We used Dark (Visual Studio).

    2. From the main menu, choose Terminal New Terminal.

      open new terminal
    3. A terminal window should now have been opened on the bottom of the window. From the terminal, run cd projects to go to the projects directory.

      change into the projects directory
    4. Now, run:

      mvn -B archetype:generate -DarchetypeArtifactId=cds-services-archetype \
        -DarchetypeVersion=RELEASE \ -DartifactId=products-service

      This will initialize the application using the maven archetype cds-services-archetype and create your project as follows:

      • The project is named products-service.
      • The db folder stores database-related artifacts.
      • The srv folder stores your Java application.
      project creation done
    5. From the main menu, choose File Open Folder.

    6. Choose projects → products-service and then OK.

      open workspace

      If you see a notification asking if you want to synchronize the Java classpath/configuration, choose Always.

      If you have any problem indication for any of the pom.xml files yet, don’t worry; ignore them for now.

  • Step 3

    CAP applications use Core Data Services (CDS) to describe:

    In this step, you will define a simple service, which also defines its own entity. In more complex applications, services usually expose projections on entities defined in the data model.

    1. Right-click on the srv folder and choose New File.

      new file
    2. Call it admin-service.cds and choose OK to create the file.

    3. Add the following service definition to the file and make sure you Save the file (keyboard shortcut CTRL+S):

      service AdminService {
          entity Products {
              key ID : Integer;
              title  : String(111);
              descr  : String(1111);
  • Step 4
    1. From the main menu, open a terminal with Terminal New Terminal.
      You should be in the products-service project but in order to be sure run pwd.

      pwd output
    2. Run the following command in the terminal to trigger the maven build process:

      mvn clean install

    Running this for the first time in a fresh dev space might take a while, depending on the network. Please wait until you see the BUILD SUCCESS message before continuing with the tutorial.

    After running this command, some files are generated and added to the srv/src/main/resources/edmx folder. This is the default path, where CAP Java runtime looks for the model definitions.

    check build output
  • Step 5

    While creating the project skeleton, the application file was created, which contains a main method. The is the startup class for the Spring Boot container.

    1. Look at the in the package (file path: srv/src/main/java/com/sap/cap/productsservice).

      open class

      If you use CTRL+P in SAP Business Application Studio, you open a search bar. Start typing to find and open the file.

      As you can see, the file doesn’t contain CAP-specific startup instructions. It’s the typical boilerplate code found in every Spring Boot application. The initialization of the CAP Java runtime is done by Spring automatically, based on the dependencies defined in the pom.xml.

    2. Go to the root of your project by running the following command in the terminal:

      cd ~/projects/products-service
    3. Start the application by running the following command in the terminal:

      mvn clean spring-boot:run

      A notification message saying “A service is listening to port 8080” will appear in the bottom right.

      expose and open notification appearing
    4. Choose Open New Tab.

    5. The application start page will be opened in a new tab.

      service startpage
  • Step 6
    1. Make sure that your application is running. From the main menu, go to View Find Command to open the command palette.

      find command
    2. Type Port: Preview and select or enter 8080. There will be one application visible and you can open new tab for it.

    What does `Expose port` in this case mean?

  • Step 7
    1. Choose $metadata from the welcome page to inspect the OData metadata that is automatically served by the CAP Java runtime.
    metadata option

    Alternatively add /odata/v4/AdminService/$metadata to your app URL. Your URL should be the same either way.

    In the next tutorial, you will learn how to add custom logic. Specifically, so that your application can read and create Products.

  • Step 8

    Sometimes it happens that your CAP Project can’t be started. Does your log output look similar to this one?

    application failed to start

    This means that your application is still running in another terminal. Check if you have multiple terminals opened or use Ports: Preview to check if you have another application running on same port.

    close terminal
    1. Stop the application in the other terminal by using CTRL+C or …

    2. Choose the x icon next to the terminal to close the terminal window and implicitly stop all inherited processes.

    icon to close terminal

    Great Job! You have built your CAP Java application skeleton and are good to serve some data.

Back to top