Hi All,
I am writing this blog to describe some easy steps to build Java application with MongoDB on SAP Cloud Platform Cloud Foundry environment.
I just followed the official tutorial, since I am a beginner. I added some comments for avoiding for mistakes.
At first, I tried to use OracleJDK, so uninstalled OpenJDK. Though It is also OK that OracleJDK and Open JDK coexists on PC, I chose the way to install only OpenJDK.
Then I tried to install OracleJDK, but I found that to register my account was troublesome. So I installed OpenJDK.
somehow openjdk-11-jre-headless was installed, so I uninstalled the one.
Checked Java version.
checked installed Maven version
I added following two lines at the end of .bashrc
After restarting terminal, checked JAVA_HOME and PATH
Since I failed with downloaded "manifest.yml", I changed the file a little bit. The failure was shortage of memory.
After successful pushing, I accessed the Java app via browser.
I can see a message on browser!
I am writing this blog to describe some easy steps to build Java application with MongoDB on SAP Cloud Platform Cloud Foundry environment.
I just followed the official tutorial, since I am a beginner. I added some comments for avoiding for mistakes.
Environment
Local PC
- Ubuntu18.04.01 LTS on VMWare Workstation
- cf CLI 6.43.0
Cloud Foundry
- Java Buildpack version 4.17.2
- CF Trial (Europe – Frankfurt)
Prerequisites
- your space is created on Cloud Foundry environment
- cf CLI is installed on Local PC(see the official page for the installation)
- git is installed on Local PC
Steps
1. Install JDK and maven
At first, I tried to use OracleJDK, so uninstalled OpenJDK. Though It is also OK that OracleJDK and Open JDK coexists on PC, I chose the way to install only OpenJDK.
1.1. Uninstalled current openJDK
# Check installed Java version
java -version
# chcek package name
sudo dpkg --list | grep -i jdk
# uninstall packages
sudo apt remove openjdk-8-jre-headless openjdk-8-jre1.2. Install openJDK-8
Then I tried to install OracleJDK, but I found that to register my account was troublesome. So I installed OpenJDK.
sudo apt search openjdk-\(\.\)\+-jdk$
sudo apt-get install openjdk-8-jdksomehow openjdk-11-jre-headless was installed, so I uninstalled the one.
sudo apt remove openjdk-11-jre-headless
Checked Java version.
$ java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)1.3. Install Maven
sudo apt install mavenchecked installed Maven version
$ mvn -v
Apache Maven 3.6.0
Maven home: /usr/share/maven
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-47-generic", arch: "amd64", family: "unix"
1.4. update .bashrc
vim ~/.bashrcI added following two lines at the end of .bashrc
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH="$PATH:$JAVA_HOME/bin:/usr/share/maven/bin"
After restarting terminal, checked JAVA_HOME and PATH
echo $JAVA_HOME
echo $PATH
2. Create mongoDB and Java application
2.1. Create mongoDB service
# input user and password after "cf login"
cf login
# check mongo db service plan name
cf marketplace -s mongodb
# create mongoDB service
cf create-service mongodb v3.0-dev mongo-service
2.2. Create the Java maven project first
mvn archetype:generate -DgroupId=hcp-cf-mongodb-tutorial -DartifactId=hcp-cf-mongodb-tutorial -DinteractiveMode=false2.3. Clone tutorial repository
# change directory to somewhere
cd <directory>
git clone https://github.com/SAP/hcp-cloud-foundry-tutorials.git2.4. Build the tutorial project
cd hcp-cloud-foundry-tutorials/hcp-cf-mongodb-tutorial
mvn package2.5. Change manifest.yml
Since I failed with downloaded "manifest.yml", I changed the file a little bit. The failure was shortage of memory.
---
applications:
- name: hcp-cf-mongodb-tutorial
memory: 768M
path: target/hcp-cf-mongodb-tutorial-1.0-SNAPSHOT.jar
services:
- mongo-service2.6. Push the project
cf pushResult
After successful pushing, I accessed the Java app via browser.
I can see a message on browser!
{"status":"Successfully accessed Mongodb service. Retrieving the data object inserted in test collection.","dbObjects":[{"key":"hello","value":"world"}]}