<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<!--
Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved.
-->

<html>       
    <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <meta name="description" content="A short guide to deploying web applications to an Oracle WebLogic instance on the Oracle Cloud, using NetBeans IDE">

        <meta name="keywords" content="NetBeans, IDE, WebLogic, Cloud, Cloud computing, Oracle Cloud">

        <link rel="stylesheet" type="text/css" href="../../../netbeans.css">
        <script type="text/javascript" src="../../../images_www/js/window_opener.js"></script>

        <title>Running Web Applications on Oracle Cloud - NetBeans IDE Tutorial</title>
</head>

    <body>
        <h1>Running Web Applications on Oracle Cloud</h1>
        <p>The Oracle Cloud is an enterprise cloud for business. The Oracle Cloud offers 
            self-service business applications delivered on an integrated development 
            and deployment platform with tools to rapidly extend and create new services. 
            For more information about Oracle Cloud, see the
            <a href="https://cloud.oracle.com" target="_blank">Oracle Cloud homepage</a>.</p>
        <p>This document shows you how to register the Oracle Cloud with NetBeans IDE and
        some of the Oracle Cloud features that are supported in the IDE. 
        This document discusses some of the advantages and disadvantages of working completely on the Cloud versus working with a local server and then deploying to the Cloud. 
        At the end you create a simple web application, following the instructions in <a href="quickstart-webapps.html">Introduction to Web Applications</a>, and run it on Oracle Cloud.</p>

        <p class="tips">You might also want to look at the 
        <a href="https://blogs.oracle.com/javatraining/entry/oracle_cloud_development_with_netbeans">Oracle Cloud Development with NetBeans and Eclipse (OEPE)</a> 
        series of tutorials on the Java Training Beat blog.</p>
        
    <p><strong>Contents</strong></p>

        <img  src="../../../images_www/articles/73/netbeans-stamp-80-74-73.png" class="stamp" alt="Content on this page applies to NetBeans IDE 7.2, 7.3, 7.4 and 8.0" title="Content on this page applies to the NetBeans IDE 7.2, 7.3, 7.4 and 8.0" >

        <ul class="toc">
            <li><a href="#sdk-download">Downloading Oracle Java Cloud Service SDK</a></li>
            <li><a href="#install-plugin">Install Oracle Cloud Plugin</a></li>
            <li><a href="#register-cloud"> Registering Oracle Cloud In the IDE</a></li>
            <li><a href="#jobs-n-logs">Viewing Jobs and Logs</a></li>
            <li><a href="#remote-server">Oracle Cloud Remote Server</a></li>
            <li><a href="#cloud-vs-local">Developing Applications on a Local Machine</a></li>
            <li><a href="#create-webapp">Creating a Web Application</a></li>
            <li><a href="#crud">Creating a CRUD Application with JSF</a></li>
            <li><a href="#test-whitelist">Testing Whitelisting Support</a></li>
            <li><a href="#seeAlso">See Also</a></li>
        </ul>

    <p><strong>To follow this tutorial, you need the following software and resources.</strong></p>

        <table>
            <tbody>
                <tr>
                    <th class="tblheader" scope="col">Software or Resource</th>
                    <th class="tblheader" scope="col">Version Required</th>
                </tr>
                <tr>
                    <td class="tbltd1"><a href="https://netbeans.org/downloads/index.html">NetBeans IDE</a></td>
                    <td class="tbltd1">7.3, 7.4, 8.0, Java EE Version</td>
              </tr>
                <tr>
                    <td class="tbltd1">Oracle Cloud plugin</td>
                    <td class="tbltd1">available from NetBeans Update Center via NetBeans Plugins manager</td>
              </tr>
                <tr>
                    <td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">Java Development Kit (JDK)</a></td>
                    <td class="tbltd1">version 7 or version 8</td>
              </tr>
              <tr>
                  <td class="tbltd1">Oracle Java Cloud Service</td>
                  <td class="tbltd1">Sign up at the <a href="http://cloudcentral.c9dev.oraclecorp.com/mycloud/f?p=SERVICE:free_trial:0" target="_blank">Oracle
            Cloud Public Availability homepage</a></td>
              </tr>
              <tr>
                  <td class="tbltd1">Oracle Java Cloud Service SDK</td>
                  <td class="tbltd1">Download from <a href="http://cloud.oracle.com">Oracle Cloud homepage</a>.</td>
              </tr>
                <tr>
                    <td class="tbltd1"><p>
                        <a href="http://www.oracle.com/technetwork/middleware/weblogic/overview/index.html" target="_blank">Oracle WebLogic server</a> <br>
                        (for developing and testing applications locally)</p>
                  </td>
      <td class="tbltd1" valign="top"><br>
        Version indicated in chapter 4 of the Oracle Java Cloud Service Users Guide<br>
      This document is available from the Resources &gt; Documentation tab <a href="https://cloudeap.oracle.com/mycloud/f?p=service:home:0" target="_blank">within your activated Java Cloud service</a>.</td>
              </tr>
              <tr>
                  <td class="tbltd1" valign="top"><a href="http://www.oracle.com/technetwork/products/express-edition/downloads/index.html" target="_blank">OracleXE  database server</a> <br>(for developing and testing applications locally)</td>
                  <td class="tbltd1" valign="top">11g</td>
              </tr>
            </tbody>
        </table>

    


<h2 id="sdk-download">Downloading Oracle Java Cloud Service SDK</h2>
<p>You need a local copy of the Oracle Java Cloud Service SDK to develop web applications on the Oracle Cloud. 
    You can download the Oracle Java Cloud Service SDK from the <a href="http://cloud.oracle.com">Oracle Cloud homepage</a>.
</p>
<p><strong>To download the Oracle Java Cloud Service SDK:</strong></p>

<ol>
    <li>Point a browser window to the <a href="http://cloud.oracle.com">Oracle Cloud homepage</a>.</li>
    <li>Expand the <strong>Resources</strong> dropdown list in the main menu and click <strong>Downloads</strong>.</li>
    <li>Click <strong>Download Oracle Cloud Java Service SDK</strong> 
        in the Oracle Java Cloud Service SDK section.</li>
    <li>On the Oracle Java Cloud Service SDK download page, read and accept the OTN License Agreement
        to activate the download link.</li>
    <li>Download and extract the SDK to your local system.</li>
</ol>

<h2 id="install-plugin">Install Oracle Cloud Plugin</h2>
<p>To enable support for the Oracle Java Cloud Service in the IDE you need to install the Oracle Cloud plugin
    from the NetBeans Update Center.
    You can use the NetBeans Plugins manager to install the Oracle Cloud plugin.
</p>
<p>Perform the following steps to install the Oracle Cloud plugin.</p>

<ol>
    <li>Choose Tools &gt; Plugins from the main menu to open the Plugins manager.</li>
    <li>Select the Available Plugins tab in the Plugins manager.</li>
    <li>Locate and select the checkbox for the Oracle Cloud plugin. Click Install.
        <p>When you click Install the IDE opens the NetBeans IDE Installer.
        You need to complete the steps in the installer wizard to install the plugin.</p></li>
</ol>
<p>After you install the Oracle Cloud plugin the Add Cloud Provider wizard will 
display Oracle Cloud in the list of supported cloud providers.</p>

    
<a name="register-cloud"></a>
        <h2>Registering Oracle Cloud In the IDE</h2>

        <p>You need to register the Oracle Cloud in the IDE's Services window before you can use it. 
            Note that you need a separate installation of the Oracle Java Cloud Service SDK.</p>
                
        <p class="notes"><strong>Note.</strong> To work with Oracle Cloud in NetBeans IDE you need to have
        an account on the Oracle Cloud. </p>
        
        <p><strong>To register Oracle Cloud in the IDE perform the following steps.</strong></p>
        <ol>
          <li>Open the Services window in the IDE (Window &gt; Services or Ctrl-5).</li>
          <li>Right-click the Cloud node and select Add Cloud to open the Add Cloud Provider wizard.<br>
            <img src="../../../images_www/articles/74/web/oracle-cloud/add-cloud.png" alt="The Add Cloud context item from the Cloud node in the Services window" height="136" width="175" class="margin-around b-bottom b-right"></li>
          <li>In the Choose Cloud field, select Oracle Cloud and click Next to open the Oracle Cloud panel. <br>
              <img src="../../../images_www/articles/72/web/oracle-cloud/oracle-cloud1.png" alt="Oracle Cloud panel of Add Cloud Provider wizard, with default options" class="margin-around"></li>
          <li>Fill in all fields. Browse for the folder containing the Oracle Java Cloud Service SDK JAR.  Click Next.
              <p>When you click Next the IDE tests the connection to the cloud. 
              A list of Cloud services appears if the connection is successful. 
              Only the Oracle Cloud Remote server (Oracle WebLogic) is currently available.</p>
              <p class="notes"><b>Note:</b> After you register an Oracle Cloud provider, you can change the Cloud details in its Properties. 
              Open Properties by right-clicking the Oracle Cloud node and selecting Properties.</p></li>
          <li>Confirm that the Oracle Cloud provider is displayed in the list of Cloud resources. Click Finish. 
              <p>Oracle Cloud is now listed under the Cloud node in the Services window. 
              You can right-click the Oracle Cloud node to open a context menu that provides commands for refreshing the list of services, 
              opening a list of jobs and logs, removing the cloud instance or viewing the cloud's properties.</p>
              <img src="../../../images_www/articles/74/web/oracle-cloud/cloud-contextmenu.png" alt="Context menu for Oracle Cloud node" height="135" width="215" class="margin-around b-top b-bottom">
              <p>When you register Oracle Cloud in the IDE an instance of the Oracle Cloud Remote server node also appears under the Servers node. 
              (If it does not appear, right-click the Oracle Cloud node and select Refresh.)</p>
              <img src="../../../images_www/articles/74/web/oracle-cloud/registered-cloud-and-server.png" alt="Server and Cloud nodes in Services window, showing Oracle Cloud and Oracle Cloud Remote Server" height="188" width="170" class="margin-around b-bottom">
              <p>You can expand the Oracle Cloud Remote node to view a list of the applications that are deployed to the remote server.</p>
          </li>          
    </ol>
    <h2><a name="jobs-n-logs"></a>Viewing Jobs and Logs</h2>
        <p>Every request that NetBeans IDE sends to the Oracle Cloud results in a job. Every job has a status      (submitted, running, failed, complete) and may have one or more log      files (whitelist check log, antivirus scan log, deployment log). You can  view recent jobs and their logs with the View Jobs and Logs action.</p>
        <p>Right-click the Oracle Cloud node and select View Jobs and Logs. In the editor window, a list appears of the last 50 jobs and logs. It takes a moment to load. The jobs list does not refresh automatically. Click Refresh to refresh the list. </p>
    <p><img src="../../../images_www/articles/74/web/oracle-cloud/jobs-n-logs.png" alt="Jobs and Logs view" height="338" width="516" class="margin-around"></p>
        <h2><a name="remote-server"></a>Oracle Cloud Remote Server</h2>
        <p>Oracle Cloud Remote server is an instance of Oracle WebLogic running on Oracle Cloud. 
            Expand the Oracle Cloud Remote node and see a list of applications running on that server. 
            You can right-click an application to open a popup menu that contains commands for starting, stopping and undeploying the application. 
            You can click View in the menu to open the application home page in a browser.</p>
        <p><img src="../../../images_www/articles/74/web/oracle-cloud/webapp-contextmenu.png" alt="Expanded Oracle Cloud Remote server node showing deployed applications and the context menu for an application" height="229" width="266" class="margin-around b-bottom"></p>
        <p>To update the list of deployed applications, right-click the Oracle Cloud Remote node and select Refresh. </p>
    <p><img src="../../../images_www/articles/74/web/oracle-cloud/server-contextmenu.png" alt="Context menu of Oracle Cloud Remote server node in Services window" height="221" width="267" class="margin-around b-bottom"></p>
        <p>&nbsp;</p>
    <h2><a name="cloud-vs-local"></a>Developing Applications on a Local Machine</h2>
    <p>We recommend developing the application on a local machine and deploying it to the Cloud periodically. While it is possible to develop a web application entirely on the Oracle Cloud, local development is preferrable for the following reasons:</p>
<ul>
          <li>Local deployment takes seconds on a running server. Deployment to the Cloud can take minutes.</li>
          <li>Incremental deployment is only available locally.</li>
          <li>Debugging is only available locally.</li>
    </ul>
    <p>Risks also exist in developing locally and deploying to the Oracle Cloud, however. The application you develop locally may not run on the Oracle Cloud Remote server. For safety, develop locally on an Oracle WebLogic server 11g, which is the same server as Oracle Cloud Remote. </p>
    <p>You must manually change the web application's server between your local server and the Oracle Cloud server. There is no automatic way to develop locally and deploy to the Cloud periodically. </p>
    <p><strong>To change a web application's server between local and Oracle Cloud:</strong></p>
        <ol>
          <li>In the Projects window, right-click the application's node and select Properties.<br>
          <img src="../../../images_www/articles/74/web/oracle-cloud/project-contextmenu.png" alt="Context menu of a Web application project node in the Projects window" height="556" width="267" class="margin-around b-bottom"></li>
          <li>In the Project Properties, select the Run category.<br>
          <img src="../../../images_www/articles/74/web/oracle-cloud/run-properties.png" alt="Run properties of a web application" height="459" width="600" class="margin-around"></li>
          <li>From the Server drop-down list, select the server you want (either Oracle Cloud Remote or local Oracle WebLogic). The server must be registered in the IDE. You can add a server by right-clicking the Servers node in the Services window.</li>
        </ol>
        <h2><a name="create-webapp"></a>Creating a Web Application</h2>
        <p>Go to <a href="quickstart-webapps.html" target="_blank">Introduction to Developing Web Applications</a> and complete that tutorial. Develop the web application on a local Oracle WebLogic server. After the application is complete, change the server to Oracle Cloud Remote and run the application.</p>
        <p class="notes"><strong>Note.</strong> You need to install Oracle WebLogic Server locally and register the server with the IDE. See <a href="https://netbeans.org/kb/docs/javaee/weblogic-javaee-m1-screencast.html">Video of Deploying a Web Application to Oracle WebLogic Server</a> for more information.</p>
        <p>Before you deploy the application to the Oracle Cloud Remote server, open the Output window (Window &gt; Output &gt; Output or Ctrl-4). Note the Oracle Cloud Remote Deployment tab in the output window. This tab shows you the  progress of the deployment.</p> 
        <img src="../../../images_www/articles/74/web/oracle-cloud/output-cloud-tab.png" alt="Output window showing Oracle Cloud Remote Deployment tab" height="289" width="575" class="margin-around">
        
        <h2 id="crud">Creating a CRUD Application with JSF</h2>   
        <p>NetBeans IDE and Oracle Cloud can be used in use cases where you have an Oracle database backend that
        is managed through a web application hosted by Oracle WebLogic server. 
        NetBeans IDE enables you to create entity classes for an existing Oracle database and create JavaServer Faces (JSF) pages for the resulting entity classes. This scenario requires on-premise installations of OracleXE database server and Oracle WebLogic application server.</p>
        <p class="alert"><strong>Important: </strong>The Oracle Cloud Remote WebLogic server does not support JPA 2.0.
        If your on-premises WebLogic server is JPA 2.0-enabled, either disable JPA 2.0 or use a JPA 1.0
        persistence provider for CRUD applications. </p>
        <p class="notes"><strong>Note: </strong>This document gives only brief directions for creating entity classes and JSF pages. 
            For a more detailed treatment, see <a href="jsf20crud.html">Generating a JavaServer Faces 2.0 CRUD Application from a Database</a>.</p>
        <p><strong>To create a CRUD Application with JSF:</strong></p>
        <ol>
            <li>Enable the sample HR schema on your OracleXE database server and register the schema in NetBeans IDE. For details, see <a href="../ide/oracle-db.html">Connecting to Oracle Database from  NetBeans IDE</a>.
                <p class="alert">Use the HR username and password when you register the HR schema with NetBeans IDE.</p></li>
            <li>Create a Java Web Application using Java EE5 and your on-premises installation of WebLogic server. Enable the JSF framework for the application.<br>
                <img alt="Server and Settings page, New Web Application wizard" src="../../../images_www/articles/72/web/oracle-cloud/crudapp-eevers.png" width="583" height="407" class="margin-around"><br>
                <img alt="Frameworks page, New Web Application wizard" src="../../../images_www/articles/72/web/oracle-cloud/crudapp-jsf.png"></li>
            <li>In the Projects window, right-click the project's root node and select New &gt; Entity Classes from Database. The Entity Classes from Database wizard opens.</li> 
            <li>In the Entity Classes from Database wizard, select New Data Source from the Data Source drop-down box. The Create Data Source dialog opens.<br>
                <img alt="Data Source drop down box" src="../../../images_www/articles/72/web/oracle-cloud/crudapp-newdatasource.png" width="552" height="149" class="margin-around"></li>
            <li>Name this datasource to match the database service name in your registered Oracle Cloud account.<br>
                <img alt="Cloud Properties dialog with database name highlighted" src="../../../images_www/articles/72/web/oracle-cloud/cloud-db-name.png" class="margin-around"></li>
            <li>Select the OracleXE HR database connection you created in Step 1. Click OK. The Create Data Source dialog closes.<br>
                <img alt="Create Data Source dialog showing database and connection names" src="../../../images_www/articles/72/web/oracle-cloud/create-datasource.png" class="margin-around"></li>
            <li>In the Entity Classes from Database wizard, the Available Tables field fills with the HR schema table names. Select one of the tables, such as EMPLOYEES, and click Add. Click through the rest of the wizard, giving an arbitrary name to the package containing the entity classes and accepting all default values in other fields.</li>
            
            <li>In the Projects window, right-click the project's root node and select New &gt; JSF Pages from Entity Classes. The New JSF Pages from Entity Classes wizard opens.</li>
            <li>In the Entity Classes panel, click Select All and click Next.</li>
            <li>In the Generate JSF Pages and Classes panel, give appropriate names to the packages and JSF file
            folder and click Finish.</li>
            <li>In the Projects window, right-click the project's root node and select Run. The IDE builds the project and deploys it to the on-premises WebLogic server. A browser opens on the project's landing page.</li>
        </ol>
        <p>You now have a local version of a Java web application using CRUD and JSF. You can test and tweak the application locally. When the application is in a final state, deploy it to Oracle Cloud.</p>
        <p><strong>Deploying the CRUD/JSF Application to Oracle Cloud</strong></p>
        <ol>
            <li>In the Projects window, right-click the project's root node and select Properties.</li>
            <li>Select the Run category in the Properties window. In this category, expand the Server drop-down list and select Oracle Cloud Remote. Click OK.<br>
                <img alt="Application project properties" src="../../../images_www/articles/72/web/oracle-cloud/crudapp-properties.png" class="margin-around" width="586" height="468"></li>
            <li>In the Projects window, expand the project's Configuration Files node and double-click <code>
                    persistence.xml</code>. The file opens in the XML Editor's Design view.</li>
            <li>Under Table Generation Strategy, select Create. <br>
                <img alt="Design view of persistence.xml" src="../../../images_www/articles/72/web/oracle-cloud/crudapp-persistence.png" class="margin-around b-bottom b-right"></li>
            <li>If your on-premises WebLogic server has JPA 2.0 enabled, you must change the persistence
            provider from the default EclipseLink, which uses JPA 2.0, to a JPA 1.0 provider such as OpenJPA.
            <p class="notes"><strong>Note: </strong>If your on-premises WebLogic server is not JPA 2.0-enabled,
            EclipseLink falls back to JPA 1.0. In this case you do not need to change persistence providers.</p></li>
            <li>In the Projects window, right-click the project's root node and select Run. The IDE builds the project
            and deploys it to the Oracle Cloud Remote server. You can follow the progress of deployment in the IDE's
            Output window, in the Oracle Cloud Remote Deployment tab.</li>             
        </ol>
        <p class="alert"><strong>Caution: </strong>Oracle Cloud does not yet support the uploading of database tables.
        Therefore no data is available for your application when it is on Oracle Cloud.</p>
    <h2><a name="test-whitelist"></a>Testing Whitelisting Support</h2>
        <p>Oracle Cloud does not support some      standard Java API methods, such as <tt>System.exit()</tt>. The Oracle Cloud <em>whitelist</em> defines all methods      that are allowed. During deployment of      an application to Oracle Cloud,  the Cloud server tests whitelist compliance. If the whitelist is violated, the Cloud server refuses to deploy the application.</p>
        <p>NetBeans IDE  helps prevent whitelist-related errors by notifying you of whitelist violations while you code. Code completion is limited by whitelisting, and whitelist violations are highlighted in the code. Run the Verify action on a web application deployed to Oracle Cloud Remote server, and the Output window shows you any whitelisting violations.</p>
    <p><strong>To test whitelisting:</strong></p>
        <ol>
          <li>In the Projects window, right-click <a href="#create-webapp">the web application you created</a> and select New &gt; Servlet. The New Servlet wizard opens.<br>
          <img src="../../../images_www/articles/74/web/oracle-cloud/new-servlet.png" alt="New Servlet wizard showing arbitrary name and package previously created" height="322" width="503" class="margin-around"></li>
          <li>Give the servlet an arbitrary name, select an existing package for it and click Finish. The servlet class opens in the editor.</li>
          <li>Find the servlet's <tt>processRequest</tt> method, type <tt>System.ex</tt> in the method body and press Ctrl-Space to open code completion. Code completion does not offer you the possibility to complete <tt>System.exit</tt> because <tt>System.exit</tt> is disallowed by the Oracle Cloud whitelist. The IDE shows <tt>exit</tt> with a line through it.<br>
          <img src="../../../images_www/articles/74/web/oracle-cloud/cc-failure.png" alt="Code completion not offering System.exit" height="160" width="345" class="margin-around b-bottom b-right"></li>
          <li>Finish typing <tt>System.exit(1);</tt>. A warning appears. Scroll the cursor over the warning icon, and a tooltip appears informing you that <tt>java.lang.System.exit</tt> is not allowed.<br>
          <img src="../../../images_www/articles/74/web/oracle-cloud/whitelist-warning.png" alt="Warning that whitelist does not allow the method" height="155" width="316" class="margin-around b-bottom b-right"></li>
          <li>In the Projects window, right-click the application's node and select Verify. Open the Output window (Window &gt; Output &gt; Output or Ctrl-4). The Output window includes a Whitelist tab that shows errors due to whitelist restrictions.<br>
          <img src="../../../images_www/articles/74/web/oracle-cloud/whitelist-output.png" alt="Output for Verify action, Whitelist tab showing errors" height="198" width="536" class="margin-around b-right"></li>
          <li>Open the Action Items window (Window &gt; Action Items or Ctrl-6). Whitelist violations appear as a separate group of action items.
          <p class="tips"><strong>Tip:</strong> Turn on Group Action Items by Category (bottom button on left) to see whitelist violations more easily.</p>
          <img src="../../../images_www/articles/74/web/oracle-cloud/whitelist-tasks.png" alt="Tasks window showing whitelist violations" height="163" width="600" class="margin-around"></li>
          <li>Try to deploy the project. A warning dialog appears informing you that whitelist violations were detected and asking if you want to continue with deployment. Click No. The dialog disappears.</li>
          <li>
            <p>In the Projects window, right-click the application's node and select Properties. The application's Project Properties open. Select the Whitelists category. A list of active whitelists appears. In this dialog you can disable the whitelist.            </p>
          <p>When a web application's server is set to Oracle Cloud Remote, the Oracle Cloud whitelist applies both to that project and any of that project's subprojects. For example, an Enterprise application set to run on Oracle Cloud Remote has the Oracle Cloud whitelist apply to the Enterprise application itself and any EJB modules or web applications that are part of the Enterprise application. Both the project and its subprojects have a Whitelist category in their Project Properties. You can use the Project Properties dialog to set whitelists separately for the project and its individual subprojects.</p>
          <img src="../../../images_www/articles/74/web/oracle-cloud/whitelist-properties.png" alt="Project Properties showing Whitelist category" height="319" width="469" class="margin-around">          </li>
        </ol>
  <div class="feedback-box">
        <a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Running%20Web%20Apps%20on%20Oracle%20Cloud">Send Us Your Feedback</a></div>

    <p>&nbsp;</p>
        <p><br style="clear:both;">
          
            <a name="seeAlso"></a>
        </p>
    <h2>See Also</h2>

        <p>For information about Oracle Cloud services, see the following resources:</p>
        <ul>
            <li><a href="https://blogs.oracle.com/javatraining/entry/oracle_cloud_development_with_netbeans">Oracle Cloud Development with NetBeans and Eclipse (OEPE)</a> (Java Training Beat blog)</li>
            <li><a href="https://cloud.oracle.com/mycloud/f?p=service:home:0" target="_blank">Oracle Cloud Homepage</a></li>
        </ul>

    <p>For related information about developing web applications
        in NetBeans IDE, see the following resources:</p>

        <ul><li><a href="../../trails/java-ee.html">Java EE &amp; Java Web Learning Trail</a></li>
        </ul>

</body>
</html>
