...
Code Block |
---|
|
sendmail.war
+ index.jsp
+ WEB-INF
+ web.xml
+ geronimo-web.xml
|
web.xml:
Code Block |
---|
| xml |
---|
borderStyle | solid |
---|
title | web.xml | borderStyle | solid |
---|
| xml |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>Send Mail Webapp</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<resource-ref>
<!-- Used in index.jsp -->
<res-ref-name>mail/testMailSession</res-ref-name>
<res-type>javax.mail.Session</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
</web-app>
|
geronimo-web.xml: This deployable is using Geronimo 2.0's JavaMail component, so it needs to specify where to look. It does this under the <dependencies> tag. As Geronimo changes, these paths need to be changed accordingly to ensure that it refers to the same things. Under the <resource-ref> element, it is referring to a JavaMail session. This is what allows the developer to reference resources that resides on the server. The <ref-name> element is used in the web.xml so the two must be consistent. The <resource-link> element specifies the default Geronimo mail session.
Code Block |
---|
| xml |
---|
borderStyle | solid |
---|
title | geronimo-web.xml | borderStyle | solid |
---|
| xml |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1">
<environment>
<moduleId>
<groupId>${pom.groupId}</groupId>
<artifactId>${pom.artifactId}</artifactId>
<version>${version}</version>
<type>war</type>
</moduleId>
<dependencies>
<dependency>
<groupId>org.apache.geronimo.configs</groupId>
<artifactId>javamail</artifactId>
<type>car</type>
</dependency>
</dependencies>
</environment>
<context-root>/sendmail</context-root>
<resource-ref>
<!-- Used is web.xml -->
<ref-name>mail/testMailSession</ref-name>
<!-- Default Geronimo mail session -->
<resource-link>mail/MailSession</resource-link>
</resource-ref>
</web-app>
|
index.jsp:
Code Block |
---|
| xml |
---|
borderStyle | solid |
---|
title | index.jsp | borderStyle | solid |
---|
| xml |
---|
|
<%@page import="java.util.Date,
javax.mail.Message,
javax.mail.Session,
javax.mail.Transport,
javax.mail.internet.InternetAddress,
javax.mail.internet.MimeMessage,
javax.naming.InitialContext" %>
<%
String resultMsg = "";
String action = request.getParameter("action");
if ("Send".equals(action)) {
String from = request.getParameter("from");
String to = request.getParameter("to");
String subject = request.getParameter("subject");
String content = request.getParameter("message");
// Get mail session and transport
InitialContext context = new InitialContext();
// Mail session from web.xml's resource reference
Session mailSession = (Session) context.lookup("java:comp/env/mail/testMailSession");
Transport transport = mailSession.getTransport("smtp");
// Setup message
MimeMessage message = new MimeMessage(mailSession);
// From address
message.setFrom(new InternetAddress(from));
// To address
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
// Subject
message.setSubject(subject);
// Content
message.setText(content);
// Send message
transport.connect();
transport.send(message);
// Build result message
resultMsg = "<b>Result:</b>";
resultMsg += "<br>Message sent: " + new Date();
resultMsg += "<br>To: " + to;
resultMsg += "<br>From: " + from;
}
%>
<html>
<head>
<title>Send Mail</title>
</head>
<body>
<form>
<table>
<tr>
<td align="center" colspan="2"><b>Send Mail</b></td>
</tr>
<tr>
<td align="right">From:</td>
<td><input type="text" name="from"></td>
</tr>
<tr>
<td align="right">To:</td>
<td><input type="text" name="to"></td>
</tr>
<tr>
<td align="right">Subject:</td>
<td><input type="text" name="subject"></td>
</tr>
<tr>
<td align="right">Message:</td>
<td><textarea rows="5" cols="20" name="message"></textarea></td>
</tr>
<tr>
<td align="right" colspan="2">
<input type="submit" name="action" value="Send"> <input type="reset"></td>
</td>
</tr>
</table>
</form>
<%= resultMsg %>
</body>
</html>
|
...