Difference between revisions of "Big Data Integration"
Adelo Vieira (talk | contribs) (→Creating - Publishing - Testing and Describing a Web Service using NetBeans) |
Adelo Vieira (talk | contribs) (→Consuming the Web Service) (Tag: Visual edit) |
||
Line 61: | Line 61: | ||
===Creating - Publishing - Testing and Describing a Web Service using NetBeans=== | ===Creating - Publishing - Testing and Describing a Web Service using NetBeans=== | ||
+ | |||
*In Netbeans, you focus on the logic of the web service and let the IDE handle the web service’s infrastructure | *In Netbeans, you focus on the logic of the web service and let the IDE handle the web service’s infrastructure | ||
Line 70: | Line 71: | ||
====Create a Web Service - Locally==== | ====Create a Web Service - Locally==== | ||
− | |||
− | |||
− | |||
− | |||
+ | *We first need to to do some configuration in NetBeans: | ||
+ | **Go to /home/hduser/netbeans-8.2/etc/netbeans.conf: | ||
+ | ***Find the line: ''netbeans_default_options'' | ||
+ | ***If ''-J-Djavax.xml.accessExternalSchema=all'' is not between the quotes then paste it in. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | *If you are deploying to the ''GlassFish'' Server you need to modify the configuration file of the ''GlassFish'' Server (''domain.xml''): | ||
+ | **/home/hduser/glassfish-4.1.1/glassfish/domains/domain1/config/domain.xml | ||
+ | ***Find : <java-config | ||
+ | ***Check the jvm-options for the following configuration | ||
+ | ***'''''<jvm-options>-Djavax.xml.accessExternalSchema=all</jvm-options>''''' | ||
+ | ***It should be there by default, if not paste it in, save file and exit | ||
+ | ***You can now start Netbeans IDE | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | *'''Create a Web Service in NetBeans:''' | ||
+ | **Choose File > New Project: | ||
+ | **Select Web Application from the Java Web category | ||
+ | **Change Project Name: to CalculatorWSApplication | ||
+ | **Set the server to GlassFish 4.1.1 | ||
+ | **Set Java EE Version: Java EE 7 Web | ||
+ | **Set Context path: /CalculatorWSApplication | ||
+ | **After that you should now have a project created in the Projects view on the left hand side. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | :*'''Creating a WS from a Java Class:''' | ||
+ | ::*Right-click the CalculatorWSApplication node and choose New > Web Service. | ||
+ | :::*If the option is not there choose Other > Web Services > Web Service | ||
+ | ::*Click Next | ||
+ | ::*Name the web service CalculatorWS and type ''com.hduser.calculator'' in Package. Leave Create Web Service from Scratch selected. | ||
+ | ::*Select Implement Web Service as a Stateless Session Bean. | ||
+ | ::*Click Finish. The Projects window displays the structure of the new web service and the source code is shown in the editor area. A default hello web service is created by Netbeans. | ||
− | ::* '''Adding an Operation to the WS:''' | + | |
− | :::* Change to the Design view in the editor. | + | ::*'''Adding an Operation to the WS:''' |
− | :::* Click the Add operation button. | + | :::*Change to the Design view in the editor. |
− | :::* In the upper part of the Add Operation dialog box, type '''''add''''' in ''Name'' and type '''''int'''''' in the ''Return Type'' drop-down list. | + | :::*Click the Add operation button. |
− | :::* In the lower part of the Add Operation dialog box, click Add and create a parameter of type '''''int''''' named '''''num_1'''''. | + | :::*In the upper part of the Add Operation dialog box, type '''''add''''' in ''Name'' and type '''''int'''''' in the ''Return Type'' drop-down list. |
− | :::* Click Add again and create a parameter of type int called num_2. | + | :::*In the lower part of the Add Operation dialog box, click Add and create a parameter of type '''''int''''' named '''''num_1'''''. |
− | :::* Click OK at the bottom of the panel to add the operation. | + | :::*Click Add again and create a parameter of type int called num_2. |
− | :::* Remove the default hello operation: Right click on hello operation and choose: Remove Operation | + | :::*Click OK at the bottom of the panel to add the operation. |
− | :::* Click on the source view to go back to view the code in the editor. | + | :::*Remove the default hello operation: Right click on hello operation and choose: Remove Operation |
− | :::* You will see the default hello code is gone and the new add method is now there instead. | + | :::*Click on the source view to go back to view the code in the editor. |
− | :::* Now we have to alter the code to look like this. | + | :::*You will see the default hello code is gone and the new add method is now there instead. |
+ | :::*Now we have to alter the code to look like this. | ||
<blockquote> | <blockquote> | ||
Line 149: | Line 151: | ||
</blockquote> | </blockquote> | ||
− | :::* Well done, you have just created your first Web Service. | + | :::*Well done, you have just created your first Web Service. |
− | :::* To test the Web service drop down the Web Services directory and right click on CalculatorWSApplication. | + | :::*To test the Web service drop down the Web Services directory and right click on CalculatorWSApplication. |
− | :::* Choose Test Web service. | + | :::*Choose Test Web service. |
− | :::* Netbeans throws an error: It is letting us know that we have not deployed our Web Service. | + | :::*Netbeans throws an error: It is letting us know that we have not deployed our Web Service. |
− | :::* '''Right click on the main Project node and select deploy''' | + | :::*'''Right click on the main Project node and select deploy''' |
− | :* '''Testing the WS:''' | + | :*'''Testing the WS:''' |
− | ::* Deploying the Web Service will automatically start the GlassFish server. Allow the server to start, this will take a little while. You can check the progress by clicking on the GlassFish tab at the bottom of the IDE. | + | ::*Deploying the Web Service will automatically start the GlassFish server. Allow the server to start, this will take a little while. You can check the progress by clicking on the GlassFish tab at the bottom of the IDE. |
− | ::* Wait until you see: «CalculatorWSApplication was successfully deployed in 9,912 milliseconds» | + | ::*Wait until you see: «CalculatorWSApplication was successfully deployed in 9,912 milliseconds» |
− | ::* Now you can right click on the Web Service as before and choose Test Web Service. | + | ::*Now you can right click on the Web Service as before and choose Test Web Service. |
− | ::* The browser will open and you can now test the Web service and view the WSDL file. | + | ::*The browser will open and you can now test the Web service and view the WSDL file. |
− | ::* You can also view the Soap Request and Response. | + | ::*You can also view the Soap Request and Response. |
====Consuming the Web Service==== | ====Consuming the Web Service==== | ||
− | * Now that we have a web service we need a client to consume it. | + | |
− | * Choose File > New Project | + | *Now that we have a web service we need a client to consume it. |
− | * Select Web Application from the Java Web category | + | *Choose File > New Project |
− | * Name the project ''CalculatorWSJSPClient'' | + | *Select Web Application from the Java Web category |
− | * Leave the server and java version as before and click Finish. | + | *Name the project ''CalculatorWSJSPClient'' |
+ | *Leave the server and java version as before and click Finish. | ||
+ | |||
+ | |||
+ | *Expand the Web Pages node under the project node and delete index.html. | ||
+ | *Right-click the Web Pages node and choose New > JSP in the popup menu. | ||
+ | **If JSP is not available in the popup menu, choose New > Other and select JSP in the Web category of the New File wizard. | ||
+ | *Type index for the name of the JSP file in the New File wizard. Click Finish to create the JSP (Java Server Page) | ||
− | + | *Right-click the ''CalculatorWSJSPClient'' node and choose ''New > Web Service Client''. | |
− | * Right-click the | + | **If the option is not there choose ''Other > Web Services > Web Service Client'' |
− | ** If | + | *Select Project as the WSDL source. Click Browse. Browse to the CalculatorWS web service in the CalculatorWSApplication project. When you have selected the web service, click OK. |
− | * | + | *Do not select a package name. Leave this field empty. |
− | * | + | *Leave the other settings as default and click Finish. |
+ | *The WSDL gets parsed and generates the .java | ||
+ | *The Web Service References directory now contains the add method we created in our web service. | ||
+ | *Drag and drop the add method just below the H1 tags in index.jsp | ||
+ | *The Code will be automatically generated. | ||
+ | *Change the values of ''num_1'' and ''num_2'' to any two numbers e.g. 5 and 5 as per test earlier. | ||
+ | *Remove the TODO line from the catch block of the code and paste in: | ||
+ | ::out.println("exception" + ex); | ||
+ | ::If there is an error this will help us identify the problem. | ||
− | + | *'''IMPORTANT Once you close Netbeans you are shutting down your server. If you want to reuse a Web Service you must re-deploy.''' | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * '''IMPORTANT Once you close Netbeans you are shutting down your server. If you want to reuse a Web Service you must re-deploy.''' | ||
− | * '''Consuming Live WS:''' | + | *'''Consuming Live WS:''' |
− | ** Again we are going to need a client. | + | **Again we are going to need a client. |
− | ** File > New Project > Java Web > Web Application. | + | **File > New Project > Java Web > Web Application. |
− | ** This time name it SortClient. | + | **This time name it SortClient. |
− | ** Click Next | + | **Click Next |
− | ** Leave the Server and Java Version settings as before (should be default now) | + | **Leave the Server and Java Version settings as before (should be default now) |
− | ** Context path : /SortClient | + | **Context path : /SortClient |
− | ** Click Finish | + | **Click Finish |
==Consuming a Web Service in Java using NetBeans IDE== | ==Consuming a Web Service in Java using NetBeans IDE== | ||
Line 212: | Line 216: | ||
− | * '''Step 1 - Createa JavaProject:''' | + | *'''Step 1 - Createa JavaProject:''' |
− | ** We are going to name it: SortClient | + | **We are going to name it: SortClient |
− | * '''Step 2 - Generate a Web Service Client:''' | + | *'''Step 2 - Generate a Web Service Client:''' |
− | ** After the Java Project has been created, go to the Project Tree Structure, Right click on Project and select New and then choose Web Service Client. | + | **After the Java Project has been created, go to the Project Tree Structure, Right click on Project and select New and then choose Web Service Client. |
− | ** Specify the WSDL URL as: http://vhost3.cs.rit.edu/SortServ/Service.svc?singleWsdl | + | **Specify the WSDL URL as: http://vhost3.cs.rit.edu/SortServ/Service.svc?singleWsdl |
− | ** Click Finish | + | **Click Finish |
− | * '''Step 3 - Invoke the Service:''' | + | *'''Step 3 - Invoke the Service:''' |
− | ** Expand the Web Service References until you see the operation lists. Drag the operation you want to invoke to the source code window, such as "GetKey". A piece of code is automatically generated to invoke that operation. | + | **Expand the Web Service References until you see the operation lists. Drag the operation you want to invoke to the source code window, such as "GetKey". A piece of code is automatically generated to invoke that operation. |
− | ** Drag MergeSort to the source code window and the corresponding code is automatically generated,too. | + | **Drag MergeSort to the source code window and the corresponding code is automatically generated,too. |
− | ** In the main function, add the code to call the two functions: getKey() and mergeSort();As it is a call to a remote service, RemoteException needs to be listed in the throws cause | + | **In the main function, add the code to call the two functions: getKey() and mergeSort();As it is a call to a remote service, RemoteException needs to be listed in the throws cause |
Revision as of 22:33, 7 March 2019
Contents
Module Information
Module Objectives
- How to implement a cloud based storage solution for a company's big data needs
- The knowledge needed to integrate desktop and web applications to utilize web services and stored data.
- How cloud based DNS solutions can help to optimize a company's IT infrastructure
- How cloud based servers and service implementations can be easily deployed for rapid utilisation
- The steps involved in data exchange between web services and cloud based applications
Resources - References
- Programming Amazon EC2, Juirg van Vliet 1st 2011 O’Reilly
- Google Compute Engine, Marc Cohen 1st 2011 O’Reilly
- Python for Google App Engine, Massimiliano Pippi 1st 2015 Packet
- Big Data Fundamentals Concepts, Drivers & Techniques, Thomas Erl, Wajid Khattak, and Paul Buhler, Prentice Hall
Service-Oriented Architecture (SOA)
- A service-oriented architecture (SOA) is a style of software design where services are provided to the other components by application components, through a communication protocol over a network.
- A service is a discrete unit of functionality that can be accessed remotely and acted upon and updated independently, such as retrieving a credit card statement online.
- SOA provides access to reusable Web services over a TCP/IP network,
XML
Web service
- A software component stored on one computer that can be accessed via method calls by an application (or other software component) on another computer over a network
- Web services communicate using such technologies as:
- XML, JSON and HTTP
- Simple Object Access Protocol (SOAP): An XML-based protocol that allows web services and clients to communicate in a platform-independent manner
Basic concepts:
- Remote machine or server: The computer on which a web service resides
- A client application that accesses a web service sends a method call over a network to the remote machine, which processes the call and returns a response over the network to the application
- Publishing (deploying) a web service: Making a web service available to receive client requests.
- Consuming a web service: Using a web service from a client application.
- In Java, a web service is implemented as a class that resides on a server.
An application that consumes a web service (client) consists needs:
- An object of a proxy class for interacting with the web service.
- The proxy object handles the details of communicating with the web service on the client's behalf
JAX-WS:
- The Java API for XML Web Services (JAX-WS) is a Java programming language API for creating web services, particularly SOAP services. JAX-WS is one of the Java XML programming APIs. It is part of the Java EE platform.
- Requests to and responses from web services are typically transmitted via SOAP.
- Any client capable of generating and processing SOAP messages can interact with a web service, regardless of the language in which the web service is written.
Creating - Publishing - Testing and Describing a Web Service using NetBeans
- In Netbeans, you focus on the logic of the web service and let the IDE handle the web service’s infrastructure
- Example: HugeInteger web service:
- Provide methods that take two "huge integers" (represented as Strings)
- Can determine their sum, their difference, which is larger, which is smaller or whether the two numbers are equal
Create a Web Service - Locally
- We first need to to do some configuration in NetBeans:
- Go to /home/hduser/netbeans-8.2/etc/netbeans.conf:
- Find the line: netbeans_default_options
- If -J-Djavax.xml.accessExternalSchema=all is not between the quotes then paste it in.
- Go to /home/hduser/netbeans-8.2/etc/netbeans.conf:
- If you are deploying to the GlassFish Server you need to modify the configuration file of the GlassFish Server (domain.xml):
- /home/hduser/glassfish-4.1.1/glassfish/domains/domain1/config/domain.xml
- Find : <java-config
- Check the jvm-options for the following configuration
- <jvm-options>-Djavax.xml.accessExternalSchema=all</jvm-options>
- It should be there by default, if not paste it in, save file and exit
- You can now start Netbeans IDE
- /home/hduser/glassfish-4.1.1/glassfish/domains/domain1/config/domain.xml
- Create a Web Service in NetBeans:
- Choose File > New Project:
- Select Web Application from the Java Web category
- Change Project Name: to CalculatorWSApplication
- Set the server to GlassFish 4.1.1
- Set Java EE Version: Java EE 7 Web
- Set Context path: /CalculatorWSApplication
- After that you should now have a project created in the Projects view on the left hand side.
- Creating a WS from a Java Class:
- Right-click the CalculatorWSApplication node and choose New > Web Service.
- If the option is not there choose Other > Web Services > Web Service
- Click Next
- Name the web service CalculatorWS and type com.hduser.calculator in Package. Leave Create Web Service from Scratch selected.
- Select Implement Web Service as a Stateless Session Bean.
- Click Finish. The Projects window displays the structure of the new web service and the source code is shown in the editor area. A default hello web service is created by Netbeans.
- Adding an Operation to the WS:
- Change to the Design view in the editor.
- Click the Add operation button.
- In the upper part of the Add Operation dialog box, type add in Name and type int' in the Return Type drop-down list.
- In the lower part of the Add Operation dialog box, click Add and create a parameter of type int named num_1.
- Click Add again and create a parameter of type int called num_2.
- Click OK at the bottom of the panel to add the operation.
- Remove the default hello operation: Right click on hello operation and choose: Remove Operation
- Click on the source view to go back to view the code in the editor.
- You will see the default hello code is gone and the new add method is now there instead.
- Now we have to alter the code to look like this.
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.adelo.calculator; import javax.jws.WebService; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.ejb.Stateless; @WebService(serviceName = "CalculatorWS") @Stateless() public class CalculatorWS { /** * Web service operation */ @WebMethod(operationName = "add") public int add(@WebParam(name = "num_1") int num_1, @WebParam(name = "num_2") int num_2) { //TODO write your implementation code here: int result = num_1 + num_2; return result; } }
- Well done, you have just created your first Web Service.
- To test the Web service drop down the Web Services directory and right click on CalculatorWSApplication.
- Choose Test Web service.
- Netbeans throws an error: It is letting us know that we have not deployed our Web Service.
- Right click on the main Project node and select deploy
- Testing the WS:
- Deploying the Web Service will automatically start the GlassFish server. Allow the server to start, this will take a little while. You can check the progress by clicking on the GlassFish tab at the bottom of the IDE.
- Wait until you see: «CalculatorWSApplication was successfully deployed in 9,912 milliseconds»
- Now you can right click on the Web Service as before and choose Test Web Service.
- The browser will open and you can now test the Web service and view the WSDL file.
- You can also view the Soap Request and Response.
Consuming the Web Service
- Now that we have a web service we need a client to consume it.
- Choose File > New Project
- Select Web Application from the Java Web category
- Name the project CalculatorWSJSPClient
- Leave the server and java version as before and click Finish.
- Expand the Web Pages node under the project node and delete index.html.
- Right-click the Web Pages node and choose New > JSP in the popup menu.
- If JSP is not available in the popup menu, choose New > Other and select JSP in the Web category of the New File wizard.
- Type index for the name of the JSP file in the New File wizard. Click Finish to create the JSP (Java Server Page)
- Right-click the CalculatorWSJSPClient node and choose New > Web Service Client.
- If the option is not there choose Other > Web Services > Web Service Client
- Select Project as the WSDL source. Click Browse. Browse to the CalculatorWS web service in the CalculatorWSApplication project. When you have selected the web service, click OK.
- Do not select a package name. Leave this field empty.
- Leave the other settings as default and click Finish.
- The WSDL gets parsed and generates the .java
- The Web Service References directory now contains the add method we created in our web service.
- Drag and drop the add method just below the H1 tags in index.jsp
- The Code will be automatically generated.
- Change the values of num_1 and num_2 to any two numbers e.g. 5 and 5 as per test earlier.
- Remove the TODO line from the catch block of the code and paste in:
- out.println("exception" + ex);
- If there is an error this will help us identify the problem.
- IMPORTANT Once you close Netbeans you are shutting down your server. If you want to reuse a Web Service you must re-deploy.
- Consuming Live WS:
- Again we are going to need a client.
- File > New Project > Java Web > Web Application.
- This time name it SortClient.
- Click Next
- Leave the Server and Java Version settings as before (should be default now)
- Context path : /SortClient
- Click Finish
Consuming a Web Service in Java using NetBeans IDE
Netbeans 6.5 - 9 and Java EE enable programmers to "publish (deploy)" and/or "consume (client request)" web services
This document provides step-by-step instructions to consume a web service in Java using NetBeans IDE.
In the project, we will invoke a sorting web service through its WSDL link: http://vhost3.cs.rit.edu/SortServ/Service.svc?singleWsdl
- Step 1 - Createa JavaProject:
- We are going to name it: SortClient
- Step 2 - Generate a Web Service Client:
- After the Java Project has been created, go to the Project Tree Structure, Right click on Project and select New and then choose Web Service Client.
- Specify the WSDL URL as: http://vhost3.cs.rit.edu/SortServ/Service.svc?singleWsdl
- Click Finish
- Step 3 - Invoke the Service:
- Expand the Web Service References until you see the operation lists. Drag the operation you want to invoke to the source code window, such as "GetKey". A piece of code is automatically generated to invoke that operation.
- Drag MergeSort to the source code window and the corresponding code is automatically generated,too.
- In the main function, add the code to call the two functions: getKey() and mergeSort();As it is a call to a remote service, RemoteException needs to be listed in the throws cause