Grossmont College Weather Web Service Project
Question Description
- SUMMARY
- You will be calling a weather web service that provides current weather info for a given city and comparing the weather between two cities the user provides.
- This lab will involve the following new features:
- Consuming a REST web service.
- Utilizing Googles Gson library to convert json to java objects.
- DETAILS
- Create a normal java application project like weve done before.
- Download the gson jar file provided with this lab. You need to add the jar file to your project like we’ve done in the past (see previous postings on how to do this).
- First create the java classes that the gson library will fill with incoming json data.
- These java classes will model the json that is returned from the weather web service.
- Here is what the returned json looks like:
{
“coord”:{“lon”:-116.96,”lat”:32.79},
“weather”:[
{“id”:800,”main”:”Clear”,”description”:”clear sky”,”icon”:”02d”}
],
“base”:”stations”,
“main”:{
“temp”:71.6,
“pressure”:1019,
“humidity”:14,
“temp_min”:68,
“temp_max”:75.2
},
“visibility”:16093,
“wind”:{“speed”:2.95,”deg”:234},
“clouds”:{“all”:5},
“dt”:1479581760,
“sys”:{
“type”:1,
“id”:476,
“message”:0.1939,
“country”:”US”,
“sunrise”:1479565376,
“sunset”:1479602637
},
“id”:5345529,
“name”:”El Cajon”,
“cod”:200
}
- All we care about is getting the value name and values from main like temp temp_min and temp_max.
- So we will 2 create java classes to mirror this relationship:
IMPORTANT: Remember that you can add a package from the File > New menu. All these files go in com.grossmont.ws. When you create a new class, just right click on the package folder you want to add the class to.
NOTE: Youll notice that the instance variable names below match the json fields passed back. That matching is necessary for gson to be able to map the json to your fields.
- Weather_main.java
- This is just the main object portion of the json that holds the below fields.
- Package: com.grossmont.ws
- Create five public instance variables:
- All are float type — temp, pressure, humidity, temp_min, temp_max
- Youll notice that in the above json sample, there is a mapping of main and inside main are these five variable names.
- All are float type — temp, pressure, humidity, temp_min, temp_max
- Weather.java
- This is the root object that holds the top most fields in the returned json.
- Package: com.grossmont.ws
- Create two public instance variables:
- main this is Weather_main type that you built above.
- name this is String type.
- WeatherServiceManager.java (this class was provided to you with this lab doc).
- You need to put this file in the src/com/grossmont/ws folder in your project.
- You will fill in code where you see the ######## markings:
- Simply follow the guidelines in the java file.
- You are essentially wiring in the classes you just created to methods that retrieve data from them.
- EXTRA CREDIT option (5 points)
- Use these classes in a web site in Tomcat, and use JSP pages to get user input for just one city and show the three values for that city (current temp, high, low).
- Look back to lab 9 as a guide on how to put your class package folders into a /WEB-INF/classes folder and how to instantiate and use your class in a JSP page.
- Reminder since were using the gson jar file, youll need to put this in a /WEB-INF/lib folder.
- You should have two JSP pages:
- one to get a city from the user in a form which submits those values to the second page.
- A second page to process the submitted user city.
- It needs to import and instantiate your WebServiceManager class.
- It needs to get the incoming parameter of city.
- It needs to take out any spaces (see main method in WebServiceManager class).
- It needs to display current temp and high & low.
/
I Have The WeatherServiceManager.java and gson-2.6.2.jar
"Place your order now for a similar assignment and have exceptional work written by our team of experts, guaranteeing you "A" results."