Lecture15

advertisement
CS441
CURRENT TOPICS IN
PROGRAMMING LANGUAGES
Lecture 15
George Koutsogiannakis SUMMER 2011
1
Topics
• NetBeans the JDK and other settings.
– Instances of the server.
– Domains.
• Using NetBeans to create a Session Bean.
– Opening an existing project.
– Creating an empty new project.
• Example of converter project.
2
NetBeans the JDK and other
settings
• Have uniformity in your installation. Mixing
versions of NetBeans / JDK and Other tools
can cause problems.
• Best configuration:
– JDK 1.6 with EE capability (install before
NetBeans).
– JDK 6 Update 12 or higher with Java EE from
http://java.sun.com/javase/downloads/index.jsp
• Gets installed in C:\Sun\SDK\
• It includes all the libraries needed
3
NetBeans the JDK and other
settings
– NetBeans 6.5 with GlassFish v2 as a minimum.
– http://www.netbeans.org/downloads/index.html
– Download All option or as a minimum
Java SE
Java Web and EE and
The bundled Servers.
4
NetBeans the JDK and other
settings
• You can add or remove packs later using the IDE's Plugin
Manager (Tools | Plugins).
Java 6 or Java 5 is required for installing and running the PHP,
Ruby and C/C++ NetBeans Bundles. You can download the
latest Java at java.com.
JDK 6 or JDK 5 is required for installing and running the Java
SE, JavaFX, Java and All NetBeans Bundles. You can download
standalone JDK or download the latest JDK with NetBeans IDE
Java SE bundle.
5
NetBeans the JDK and other
settings
– After download and during installation:
• Direct NetBeans to use \Sun\SDK\jdk as the default jdk
(JDK 6 with update 12 and higher).
• Other JDK platforms can also be added if you wish, as
additions to default jdk.
• Make sure that in the Services window of NetBeans you
add the servers:
– GlassFish V2 or and V3
– Tomcat 6.x
– You can start the servers from there by right clicking on the
server ‘s name.
6
NetBeans and the JDK and other
settings
– Install Tomcat 6.x and add it as a server under
services in NetBeans.
• Servers that exist can be added from Tools-> server
and click on Add Server in the open Dialog.
• Make sure that servers do not have conflicting ports.
– Most likely you would have to change Tomcat ‘s default port
from 8080 to another port like 8090. The shut down port for
Tomcat would also need to be changed:
» Services .. .. Highlight the server ‘s name.
» Right click and click on Properties. Change the port
numbers on the opened dialog pane.
7
NetBeans and the JDK and other
settings
– Avoid activating GlassFish V3 which an application
server associated with a new OOP Language called
JRuby.
• Another configuration is:
– http://www.netbeans.org/downloads/index.html
– Download the All choice which does not include the JDK.
– Use the JDK installation from previous configuration.
8
NetBeans and the JDK and other
settings
• Every project created in NetBeans must have an
instance of the application server GlassFish
registered.
– When you open an existing project a message comes up
warning you that an instance of the server needs to be
registered (if one does not exist).
• You can right click on the projects name and choose:
“Resolve Missing Server Problem”
Notice that in this case you will have to be aware of the path in your
System where the application server is located.
Note that in most cases the registration of an instance will be done
automatically and you will not have to do the above.
A default instance is created under Domain “domain1”.
9
NetBeans and the JDK and other
settings
• Another approach is to start the proper server
after activating NetBeans.
– Under Services right click on the server name and
click start. Wait few seconds until the server is up
and running.
– Verify that the server is running :
• If the server is not running there will be a message at
the bottom pane of the screen.
• If the server is running the stop and restart menu
option will be active and the start option inactive.
10
NetBeans Domains.
• A Domain is a process that encompasses a unique
application’s modules. It is an instance of the
application server.
– It isolates one application from another. No direct
communication is allowed between domains without
marshalling a remote object.
– Each domain has
• the port number of the server
• The port number of the administration server including User Name
and password for administering the server.
• Security settings.
11
Server’s log
• You can get some idea of cause of failures that
result in the server not starting by examining
the log file of the server under
<server installation>domains/domain1/logs/server file.
• Log files are also accessible for the administrative console of
the server.
• To access the administrative console as a web application
– Right click on the server name and choose View Admin Console
• A password for the domain you established during installation, is required.
12
NetBeans and the JDK and other
settings
• The next slide shows the NetBeans window with
– On the left : the 2 basic windows Projects and Services .
• Other windows can be added (or closed) from the Windows menu
on top.
– In the center usually we have the editor window where the
code of a module will appear.
– On right we have the Properties window which displays
properties of the focused module.
13
NetBeans and the JDK and other
settings
– On the bottom we have the output window which will
display:
• Information on the building process
• Information on the deployment process
• Any output when you run the deployed project
14
15
16
Session Beans
• Session Bean can be called by:
– Remote Application Client or
– By Web Client (JSP , Servlet).
– By another Bean component.
17
Session Beans
• Basic steps:
– Develop the code for the Bean
• Interface with business methods definitions
• Class that implements the interface.
– Develop code for the Client Application (if there is
one)
– Develop code for a web client (if there is one).
18
Session Beans-Open an existing
Project
– Save your files in some path of your choice within your
system.
– From the File menu of NetBeans use Open Project to bring
the files in (this is provided that your files were configured
as a project).
– The symbol for the overall project is a blue triangle.
– You need to notify NetBeans that this project is the main
project under focus right now (because multiple projects
can be there).
– The main project is the project that contains the
application’ s main class.
• Go to the menu “Run” and select “Set Main Project”-> choose
your project’s name.
19
Session Beans-Open an existing
Project
– Compile the files by right clicking on the name of
each module and choosing build.
• Using NetBeans or ant tool build the application client
files (if there is an application client) into a jar file.
• Using NetBeans or ant tool build the web client (if
there is a web client) into a war file.
• Using NetBeans or ant tool build the ejb into a jar file.
20
Session Beans-Open an existing
Project
• Instead of the individual builds listed above ,
you can build the entire project by right
clicking on the project’ s name and choosing
the build option.
• If you do that do not build each application
separately again. That will cause you a
problem.
21
Session Beans
• Once the project has been built, it needs to be
deployed.
– Make sure that Tomcat is running (if it is only a web
project) or if you are using GlassFish:
– You can start GlassFish v2 manually or it should start
automatically as part of the deployment.
• Notice that the building process can fail for various
reasons as well as deployment.
– Failure to deploy could be because of a number of reasons
including:
22
Session Beans
• Port conflicts between the various servers.
• Incorrect server configuration.
• Invalid JDK libraries (libraries that are needed but don’t
exist because of incorrect jdk libraries being used by
NetBeans.
– This can be corrected by changing the default jdk libraries for
the project.
– Right click on the name of the project and choose Properties.
– In the opened dialog pane highlight “libraries” and then find
the path to the proper jdk libraries.
– From the combo box choose the proper java platform.
• Other reasons –check NetBeans documentation or help
menu.
23
24
Create a New Project
• Before we provide any coding (either manually
or by having NetBeans produce the code) we
need to create a project:
– Choose File-> New Project from Menu Bar
– Select Enterprise Application from Java EE
category , click Next.
– Type a name for your project.
– Deselect Use Dedicated Folder option if selected.
Click Next
25
Create a New Project
– Set the server to GlassFish and set Java EE version
to EE5 or EE6.
– Select Create EJB Module and Create Application
Client Module (if we are creating an application
module).
– Click Finish
26
Creating a Session Bean
• We can create a session bean by using NetBean utilities or by writing the
code ourselves or by a combination of the two.
• Example of a Session Bean projects are part of NetBeans IDE.
• Let us look at the converter project example from the JAVA EE 6
TUTORIAL text.
– This ejb application of the converter project provides the services for
the conversion of dollars to to yen and yento Euro
– It has a client application that communicates with the ejb.
– It also has a web application that communicates with the ejb in the
form of jsp code.
– What is needed programmatically is:
27
Creating a Session Bean
– The interface that defines the methods to be implemented by the ejb.
– The class that implements the methods of the interface.
– The client application that can invoke directly the methods of the ejb
(dollar to yen and yen to Euro conversions).
– The web application that can invoke the methods of the ejb via the
web from a browser.
• A jsp file resides in a web server. The file creates an html form that
gets transferred to a browser instance. The user can enter
amounts that can be converted.
• Note : the client application and the web
aplication are independent of each other.
28
Converter Bean Example
Client Java
Application for
ConverterBean
Html generated by
Web Client
Runs on Browser
ConverterBean
runs on the
Application Server
part of GlassFish
Web Client for
ConverterBean
runs on Web
Server part of
GlassFish
29
Client Application
package converter.client;
import converter.ejb.Converter;
import java.math.BigDecimal;
import javax.ejb.EJB;
public class ConverterClient {
@EJB // ANNOTATION
private static Converter converter;
/** Creates a new instance of Client */
public ConverterClient(String[] args) {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ConverterClient client = new ConverterClient(args);
client.doConversion();
}
30
Client Application
public void doConversion() {
try {
BigDecimal param = new BigDecimal("100.00");
BigDecimal yenAmount = converter.dollarToYen(param);
// Above line is the invocation of the remote method implemented by the // //ejb
component. The variable yenAmount captures the returned value of // the remote
invocation
System.out.println("$" + param + " is " + yenAmount + " Yen.");
BigDecimal euroAmount = converter.yenToEuro(yenAmount);
//another invocation involving the second remote method of the ejb
System.out.println(yenAmount + " Yen is " + euroAmount + " Euro.");
System.exit(0);
} catch (Exception ex) {
System.err.println("Caught an unexpected exception!");
ex.printStackTrace();
}
}
}
31
Remote Interface for the Session
Bean
package converter.ejb;
import java.math.BigDecimal;
import javax.ejb.Remote;
@Remote // ANNOTATION
public interface Converter {
public BigDecimal dollarToYen(BigDecimal dollars);
public BigDecimal yenToEuro(BigDecimal yen);
}
32
Session EJB Code
package converter.ejb;
import java.math.BigDecimal;
import javax.ejb.Stateless;
@Stateless //ANNOTATION
public class ConverterBean implements converter.ejb.Converter {
private BigDecimal euroRate = new BigDecimal("0.0070");
private BigDecimal yenRate = new BigDecimal("112.58");
public BigDecimal dollarToYen(BigDecimal dollars) {
BigDecimal result = dollars.multiply(yenRate);
return result.setScale(2, BigDecimal.ROUND_UP);
}
public BigDecimal yenToEuro(BigDecimal yen) {
BigDecimal result = yen.multiply(euroRate);
return result.setScale(2, BigDecimal.ROUND_UP);
}
}
33
Web Client-JSP
<%@ page import="converter.ejb.Converter, java.math.*, javax.naming.*"%>
//directive tag
<%!
private Converter converter = null;
public void jspInit() {
try {
InitialContext ic = new InitialContext(); //lookup
converter = (Converter) ic.lookup(Converter.class.getName()); //lookup
} catch (Exception ex) {
System.out.println("Couldn't create converter bean."+ ex.getMessage());
}
}
public void jspDestroy() {
converter = null;
}
%>
34
Web Client -JSP
<html>
<head>
<title>Converter</title>
</head>
<body bgcolor="white">
<h1>Converter</h1>
<hr>
<p>Enter an amount to convert:</p>
<form method="get">
<input type="text" name="amount" size="25">
<br>
<p>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</form>
35
Web Client -JSP
<%
String amount = request.getParameter("amount");
if ( amount != null && amount.length() > 0 ) {
BigDecimal d = new BigDecimal(amount);
BigDecimal yenAmount = converter.dollarToYen(d); //invocation
%>
<p>
<%= amount %> dollars are <%= yenAmount %> Yen.
<p>
<%
BigDecimal euroAmount = converter.yenToEuro(yenAmount);
//invocation
%>
<%= yenAmount %> Yen are <%= euroAmount %> Euro.
<%
}
%>
</body>
</html>
36
Session EJB
• You can import the files for the example projects from the CD
– In that cased use Open Project in NetBeans.
• Or you can create your own files and create a new project by
following the previous instructions.
• Start the Server (i.e. GlassFish)
• Build the project.
• Deploy the project. Make sure that Tomcat and GlassFish v2
are running (without conflicts).
• Run the project.
37
38
Deployment
• Once a project is deployed:
– Do not deploy again every time you activate
NetBeans.
– It is deployed once and stays deployed even if you
exit NetBeans and you open NetBeans later on.
– Once the project is deployed, to run the client
application:
• Right click on the project name and choose run (as
main project). The client output (if any) will appear at
the bottom of the NetBeans console (under Output).
39
Convert Client Application Output
40
Converter project Web Application
• To run the Web Application (Web Client for
ejb):
– Open an instance of the browser and in the
address field type:
http://localhost:8090/convert/index.jsp
And press enter
Notice that 8090 is an example port for the web
server part of GlassFish. You must know the web
server port for your installation of GlassFish.
41
Web Client for converter ejb
42
Deployment Issues
• If for some reason the deployment was
unsuccessful you can try redeploying
• First undeploy any parts of the application
that were deployed.
– Follow this procedure also if you want to make
changes to the code and need to rebuild and
redeploy
• Go to the GlassFish Administrative Console an
log in.
43
Deployment Issues
• In the left side of the console click on
Enterprise applications.
– In the screen that comes up choose the converter
application and then click on undeploy button.
– Repeat the same for other parts of the application
• Web Application
• EJB Modules
• Application Client Modules.
44
NetBeans and support for Applets
• NetBeans supports development of Applets.
• Create the Java project from scratch or from existing sources
• Choose File > New Project (Ctrl-Shift-N). Under Categories, select Java.
• Choose one of the following:
– If you are creating a new applet source file, select Java Class Library under
Projects. Click Next.
– If you want to import an applet source file, select Java Project with Existing
Sources. Click Next. Specify the file's location in the Source Packages Folder
text box.
• Under Project Name, type HelloApplet. Change the Project Location to any
folder on your computer.
• Click Finish. If you imported an applet source file, run it.
45
NetBeans and support for Applets
• Create the applet source file
• Right-click the HelloApplet project node in the Projects window and select
New > Other (Ctrl-N).
• Under Categories, select Java. Under File Types, select Applet.
Alternatively, if you want to visually design your applet, select Swing GUI
Forms > JApplet Form.
• If you want to import an applet source file, select Java Project with Existing
Sources. Click Next. Specify the file's location in the Source Packages
Folder text box.
46
NetBeans and support for Applets
• Click Next.
• Under Class Name, type MyApplet. Under Package, type org.me.hello.
Click Finish.
The IDE creates the applet source file in the specified package. The applet
source file opens in the Source editor.
• Define your applet class by copying and pasting the following code over
the existing default code:
47
NetBeans and support for Applets
• The IDE creates the basic applet code:
public class HelloApplet extends JApplet {
public static int() {
}
}
You can add methods and code as needed
48
NetBeans and support for Applets
• The applet that you created can be run from the IDE.
– Right-click the HelloApplet project node in the Projects window and
choose Build from the contextual menu.
– The HelloApplet.jar file is created in the dist folder, which you can see
if you switch to the Files window .
– Right-click the applet class node (i.e., right-click "MyApplet.java" not
the "HelloApplet" project) in the Projects window and choose Run File
from the contextual menu.
The MyApplet.html launcher file, with the applet embedded, is
created in the build folder, which you can see if you switch to the Files
window (Ctrl-2):
49
NetBeans and support for Applets
• Your applet is complete. Now you need to make it available to
the user by deploying it as a web application.
• To do so, you create a web application, put the applet JAR on
its classpath, and then add an applet tag to the web
application's HTML file.
• Create the web project
– Choose File > New Project. Under Categories, select Web. Under
Projects, select Web Application. Click Next.
– Under Project Name, type HelloWebApplet. Change the Project
Location to any folder on your computer. Click Next, select your server,
and click Finish.
50
NetBeans and support for Applets
• Add the applet JAR file to the web project
– When you want to include an applet JAR file in a web
project, you can do so by
• adding the Java project that contains the JAR file, or
• by adding the JAR file itself. Although the choice is yours, note
that when you add the Java project to the web project, you enable
the IDE to build the applet whenever you build the web
application. Therefore, when you modify the applet in the Java
project, the IDE builds a new version of the applet whenever the
web project is built.
• On the other hand, if the applet JAR file is not in a NetBeans IDE
project, the applet source file is not rebuilt when you build the
web project.
51
NetBeans and support for Applets
• TO ADD THE APPLET PROJECT TO THE WEB APPLICATION:
– In the Projects window, right-click the HelloWebApplet project node
and select Properties from the contextual menu. Choose one of the
following:
• If the applet JAR file is in a Java project, click Packaging, and then
click Add Project. Browse to and select the folder that contains the
Java project. Note that IDE projects are marked by the NetBeans
IDE project icon.
• If the applet JAR file is not in a IDE project, click Packaging, and
then click Add JAR/Folder. Browse to and select the folder that
contains the JAR file.
– The JAR file containing the applet source file is listed in a table at the
bottom of the Project Properties dialog box.
52
NetBeans and support for Applets
• Optionally, you can type a location for the applet in the table's
Path in WAR column (in the Properties dialog box).
– By default, the applet JAR file will be copied to the web
application's document root, which is the build/web folder
(the highest level of the web application's file structure).
Click OK.
– When you build the project, the applet's JAR file is
packaged in the project's WAR file in the dist folder. It is
also added to the build/web folder.
53
NetBeans and support for Applets
• Create and run the JSP file or HTML file
• Choose one of the following:
– If you want to embed the applet in a JSP file, double-click the default
index.jsp file in the Projects window. This file is created by the IDE
when you create a web project. It opens in the Source Editor.
– If you want to embed the applet in an HTML file, right-click the
HelloWebApplet project node, and choose New > Other from the
contextual menu. Under Categories, select Web. Under File Types,
select HTML. Click Next. Give your HTML file a name and click Finish.
• Embed the applet in the file by adding the following applet tag anywhere
between the file's <body></body> tags: <applet
code="org.me.hello.MyApplet" archive="HelloApplet.jar"/>
• org.me.hello.MyApplet is the full classname to your applet
• HelloApplet.jar is the JAR file that contains the applet
54
NetBeans and support for Applets
55
NetBeans and support for Applets
• TO RUN THE WEB APPLICATION:
– Right-click the JSP node or HTML node in the
Projects window and choose Run File from the
contextual menu. The server deploys the JSP file
or HTML file in the IDE's default browser.
56
Applet Servlet Web Application
• Create the web application with the servlet
first.
• Add the applet project to the web
application’s project that contains the servlet
by following the procedure outlined in
previous slides.
57
Study Guide
• Chapters 14, 15, 16 of EE 6 Tutorial.
• NetBeans documentation.
58
Download