geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Geronimo v2.2 > deploy
Date Mon, 22 Feb 2010 07:07:00 GMT
<html>
<head>
    <base href="http://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/1519/1/1/_/styles/combined.css?spaceKey=GMOxDOC22&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background-color: white" bgcolor="white">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
     <h2><a href="http://cwiki.apache.org/confluence/display/GMOxDOC22/deploy">deploy</a></h2>
     <h4>Page <b>edited</b> by             <a href="http://cwiki.apache.org/confluence/display/~carol%2Bh">Di
Hu</a>
    </h4>
     add the encrypt subcommand
          <div id="versionComment" class="noteMacro" style="display:none; padding: 5px;">
     add the encrypt subcommand<br />
     </div>
          <br/>
     <div class="notificationGreySide">
         <style type='text/css'>/*<![CDATA[*/
table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color:
#f0f0f0}
table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}

/*]]>*/</style><div class="Scrollbar"><table class='ScrollbarTable'><tr><td
class='ScrollbarPrevIcon'><a href="/confluence/display/GMOxDOC22/cxf-tools"><img
border='0' align='middle' src='/confluence/images/icons/back_16.gif' width='16' height='16'></a></td><td
width='33%' class='ScrollbarPrevName'><a href="/confluence/display/GMOxDOC22/cxf-tools">cxf-tools</a>&nbsp;</td><td
width='33%' class='ScrollbarParent'><sup><a href="/confluence/display/GMOxDOC22/Tools+and+commands"><img
border='0' align='middle' src='/confluence/images/icons/up_16.gif' width='8' height='8'></a></sup><a
href="/confluence/display/GMOxDOC22/Tools+and+commands">Tools and commands</a></td><td
width='33%' class='ScrollbarNextName'>&nbsp;<a href="/confluence/display/GMOxDOC22/geronimo">geronimo</a></td><td
class='ScrollbarNextIcon'><a href="/confluence/display/GMOxDOC22/geronimo"><img
border='0' align='middle' src='/confluence/images/icons/forwd_16.gif' width='16' height='16'></a></td></tr></table></div>
<p>The <b>deploy</b> script is used for installing, uninstalling, reinstalling,
starting and stopping applications and modules and for installing and uninstalling configurations
(for example some configuration specific deployment plans, security realms, database connection
pools etc.)</p>

<h1><a name="deploy-Usage"></a>Usage</h1>

<p>This command has the following syntax:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy &lt;general_options&gt; &lt;command&gt; &lt;command_options&gt;
</pre>
</div></div>
<p>where <em>&lt;general_options&gt;</em> specify common options
that apply to all commands and control how the application behaves, <em>&lt;command&gt;</em>
is a command name that specifies the action to be performed, and <em>&lt;command_options&gt;</em>
are options unique to the command specified.</p>

<p>The <b>deploy</b> command can also be started by using the java &#45;jar
command:</p>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>java -Djava.endorsed.dirs=lib/endorsed -jar bin/deployer.jar &lt;general_options&gt;
&lt;command&gt; &lt;command_options&gt;
</pre>
</div></div>

<h2><a name="deploy-Generaloptions"></a>General options</h2>

<p>This section lists all the available general options for the Geronimo deployer tool.</p>
<ul>
	<li><b>&#45;-uri</b> &lt;identifier&gt;<br/>
Where <em>&lt;identifier&gt;</em> is a Universal Resource Identifier (URI)
that specifies how the deployer is to contact the server. If this flag is not specified, the
deployer will attempt to contact the server using the standard port on localhost. The identifier
must have the following form:
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deployer:geronimo:jmx:rmi:///jndi/rmi://host:port/JMXConnector
</pre>
</div></div>
<p>where <em>&lt;host&gt;</em> is replaced with the host name or
TCP/IP address of the system where the server is running and &lt;port&gt; is replaced
with the port number where the server is listening. If unspecified, localhost and the default
port will be used.</p></li>
</ul>


<ul>
	<li><b>&#45;-host</b> &lt;host&gt;<br/>
Where <em>&lt;host&gt;</em> is the host name of the server you are trying
to deploy that application or resource. This option allows you to deploy resources and applications
to a remote server. This parameter is optional and defaults to localhost defined as RemoteDeployHostname=localhost
in &lt;Geronimo_home&gt;/var/config/config-substitutions.properties. Change localhost
to the server's ip address if you want remote-deployment enabled on it.</li>
</ul>


<ul>
	<li><b>&#45;-port</b> &lt;port&gt;<br/>
Where <em>&lt;port&gt;</em> is the port of the remote server you are trying
to deploy that application or resource. This parameter is optional and defaults to port 1099.</li>
</ul>


<ul>
	<li><b>&#45;-driver</b> &lt;driver_path&gt;<br/>
Where <em>&lt;driver_path&gt;</em> is the path to the driver JAR if you
want to use this tool with a server other than Geronimo. Currently, manifest Class-Path entries
in that JAR are ignored.</li>
</ul>


<ul>
	<li><b>&#45;-user</b> &lt;username&gt;<br/>
Where <em>&lt;username&gt;</em> is a user name authorized to be an administrator
on the server. If the command requires authorization, you must use this option.</li>
</ul>


<ul>
	<li><b>&#45;-password</b> &lt;password&gt;<br/>
Where <em>&lt;password&gt;</em> is a the password required to authenticate
the user name. If this flag is not specified, the deployer will attempt to perform the command
with no password, but if that fails, it will prompt you to enter a password.</li>
</ul>


<ul>
	<li><b>&#45;-secure</b><br/>
Use secure channel to communicate with JMX server, see <a href="#deploy-Security">Security</a>
for details. This parameter is only available in Geronimo 2.1.2 or greater.</li>
</ul>


<ul>
	<li><b>&#45;-syserr</b> &lt;select&gt;<br/>
Where <em>&lt;select&gt;</em> can be either true or false. If this flag
is unspecified. false is assumed. Specify true when you want errors to be logged to the syserr
device.</li>
</ul>


<ul>
	<li><b>&#45;-verbose</b> &lt;select&gt;<br/>
Where <em>&lt;select&gt;</em> can be either true or false. If this flag
is unspecified. false is assumed. Specify true when you need more messages to determine the
cause of an error.</li>
</ul>


<p><a href="#deploy-top">Back to top</a></p>

<h2><a name="deploy-Security"></a>Security</h2>

<p>Starting with Geronimo 2.1.2, the deployer tool can use a secure channel (SSL/TLS)
to communicate with the JMX server to perform the given actions. To enable secure communication
just add the <b>&#45;-secure</b> option. Depending on your configuration you
might also need to specify some Java security properties to configure the JVM to use the right
keystores and passwords. For example, on a default Geronimo installation you might need to
set the following (all in one line):</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>export JAVA_OPTS="-Djavax.net.ssl.trustStore=&lt;geronimo_home&gt;/var/security/keystores/geronimo-default
-Djavax.net.ssl.trustStorePassword=secret"
</pre>
</div></div>

<p>Once that property is set, you can execute the following command (just as an example):</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>&lt;GERONIMO_HOME&gt;/bin/deploy -u system -p manager --secure list-modules
</pre>
</div></div>

<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td
valign='top'><img src="/confluence/images/icons/emoticons/warning.gif" width="16" height="16"
align="absmiddle" alt="" border="0"></td><td>The secure JMX server might not
be running by default. Please see <a href="/confluence/display/GMOxDOC22/Configuring+secure+JMX+server"
title="Configuring secure JMX server">Configuring secure JMX server</a> for more
information.</td></tr></table></div>
<p><a href="#deploy-top">Back to top</a></p>

<h2><a name="deploy-Subcommands"></a>Sub-commands</h2>

<p>The available sub-commands for the Geronimo deployer tool are listed below:</p>
<ul>
	<li>Common commands
	<ul>
		<li><a href="#deploy-Deploy">Deploy</a></li>
		<li><a href="#deploy-Login">Login</a></li>
		<li><a href="#deploy-Redeploy">Redeploy</a></li>
		<li><a href="#deploy-Start">Start</a></li>
		<li><a href="#deploy-Stop">Stop</a></li>
		<li><a href="#deploy-Undeploy">Undeploy</a></li>
	</ul>
	</li>
	<li>Other commands
	<ul>
		<li><a href="#deploy-Distribute">Distribute</a></li>
		<li><a href="#deploy-Encrypt">Encrypt</a></li>
		<li><a href="#deploy-Installlibrary">Install-library</a></li>
		<li><a href="#deploy-Listmodules">List-modules</a></li>
		<li><a href="#deploy-Listtargets">List-targets</a></li>
	</ul>
	</li>
	<li>Geronimo Plugins
	<ul>
		<li><a href="#deploy-Installplugin">Install-plugin</a></li>
		<li><a href="#deploy-Searchplugins">Search-plugins</a></li>
	</ul>
	</li>
</ul>


<p>Additionally, you can type <b>help</b> for further details on a given
command, the syntax is as follows:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy help &lt;command&gt;
</pre>
</div></div>

<p><a href="#deploy-top">Back to top</a></p>

<h3><a name="deploy-Deploy"></a>Deploy</h3>

<p>Use the <b>deploy</b> command to add and start a new module. The deploy
command has the following syntax:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy &lt;general_options&gt; deploy &lt;module&gt; &lt;deployment_plan&gt;
</pre>
</div></div>

<p>The &lt;module&gt; specifies the application file name and location. The
&lt;deployment_plan&gt; specifies the file name and location of the XML with the deployment
plan. Sometimes the application module already has included in the package a deployment plan
or the application is so simple that does not require any deployment plan, in these cases
this parameter can be omited.</p>

<p>A module file can be one of the following:</p>
<ul>
	<li>J2EE Enterprise Application Archive (EAR) file</li>
	<li>J2EE Web Application Archive (WAR) file</li>
	<li>J2EE Enterprise JavaBean Archive (JAR) file</li>
	<li>J2EE Java Resource Archive (RAR) file</li>
</ul>


<p>If the server is not currently running at the time of deploying the application,
the module will be marked to start next time the server is started.</p>

<p>The most common &lt;general_options&gt; would be &#45;-user and &#45;-password.
The &#45;-inPlace option allows you point to and deploy an application directly from a
directory external to Geornimo without the need for even packaging the application. In other
words, you can have an application <b>running</b> in Geronimo but that application
may be anywhere else on the file system.</p>

<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td
valign='top'><img src="/confluence/images/icons/emoticons/warning.gif" width="16" height="16"
align="absmiddle" alt="" border="0"></td><td><p>Please note that the
&#45;-inPlace option cannot be used when deploying an application to a remote server.</p></td></tr></table></div>

<p>To use this option you should type:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy &lt;general_options&gt; deploy --inPlace &lt;APP_HOME&gt;
</pre>
</div></div>

<p>Where &lt;APP_HOME&gt; indicates the home directory where you have your application
(exploded).</p>

<p>You can also deploy applications if Geronimo is not running by using the &#45;-offline
option, the syntax for this command would be:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy &lt;general_options&gt; --offline deploy &lt;module&gt;
</pre>
</div></div>

<p>Off course, you can also combine &#45;-offline and &#45;-inPlace</p>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy &lt;general_options&gt; --offline deploy --inPlace &lt;APP_HOME&gt;
</pre>
</div></div>

<p><a href="#deploy-top">Back to top</a></p>

<h3><a name="deploy-Login"></a>Login</h3>

<p>Use the <b>login</b> command to save the username and password for the
current connection to the file <tt><b>.geronimo-deployer</b></tt>
in the current user's home directory. Future connections to the same server will try to use
this saved authentication information instead of prompting where possible.</p>

<p>This information will be saved separately per connection URL, so you can specify
&#45;-url or &#45;-host and/or &#45;-port on the command line to save a login
to a different server.</p>

<p>The <b>login</b> command has the following syntax:</p>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy --user &lt;user_name&gt; --password &lt;password&gt; login
</pre>
</div></div>

<p>So, next time you run a different command that originally required user name and
password, you can run the command directly, for example:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy list-modules
</pre>
</div></div>

<p>Similarly, you don't have to specify or re-enter the user name and password when
you shut down the server using the <a href="/confluence/display/GMOxDOC22/shutdown" title="shutdown">shutdown</a>
command.</p>

<div class='panelMacro'><table class='warningMacro'><colgroup><col width='24'><col></colgroup><tr><td
valign='top'><img src="/confluence/images/icons/emoticons/forbidden.gif" width="16"
height="16" align="absmiddle" alt="" border="0"></td><td>Even when the login
information is not saved in clear text, it is not secure either. If you want to save the authentication
securely, you should change the .geronimo-deployer file in your home directory so that nobody
else can read or write it.</td></tr></table></div>
<p><a href="#deploy-top">Back to top</a></p>

<h3><a name="deploy-Redeploy"></a>Redeploy</h3>

<p>Use the <b>redeploy</b> command to stop, replace and restart a module
that has been deployed before. The redeploy command has the following syntax:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy &lt;general_options&gt; redeploy &lt;module&gt; &lt;deployment_plan&gt;
</pre>
</div></div>

<p>Just like the <a href="#deploy-Deploy">deploy command</a>, the redeploy
command accepts the following modules file types:</p>
<ul>
	<li>J2EE Enterprise Application Archive (EAR) file</li>
	<li>J2EE Web Application Archive (WAR) file</li>
	<li>J2EE Enterprise JavaBean Archive (JAR) file</li>
	<li>J2EE Java Resource Archive (RAR) file</li>
</ul>


<p>Typically, both a module and a plan are specified. If the module contains a plan
or if a default plan can be used, the plan can be omitted. However, if a plan is specified
in this case, it overrides the other plans. If the plan references a server component already
deployed in the server's environment, the module is omitted.</p>

<p><a href="#deploy-top">Back to top</a></p>

<h3><a name="deploy-Start"></a>Start</h3>

<p>Use the <b>start</b> command to start a previously deployed module. The
start command has the following syntax:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy &lt;general_options&gt; start &lt;moduleIDs&gt;
</pre>
</div></div>

<p>Where &lt;moduleIDs&gt; is a list of one or more modules (configID) separated
by blank space. The module identification (or ConfigID) is defined at deployment time in the
respective deployment plan for each module previously deployed.</p>

<p><a href="#deploy-top">Back to top</a></p>

<h3><a name="deploy-Stop"></a>Stop</h3>

<p>Use the <b>stop</b> command to stop a running module. The stop command
has the following syntax:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy &lt;general_options&gt; stop &lt;moduleIDs&gt;
</pre>
</div></div>

<p>Where &lt;moduleIDs&gt; is a list of one or more modules (configID) separated
by blank space. The module identification (or ConfigID) is defined at deployment time in the
respective deployment plan for each module previously deployed.</p>

<p><a href="#deploy-top">Back to top</a></p>

<h3><a name="deploy-Undeploy"></a>Undeploy</h3>

<p>Use the <b>undeploy</b> command to stop and remove a module (running
or not) and its deployment information from the server. The undeploy command has the following
syntax:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy &lt;general_options&gt; undeploy &lt;moduleIDs&gt;
</pre>
</div></div>

<p>Where &lt;moduleIDs&gt; is a list of one or more modules (configID) separated
by blank space. The module identification (or ConfigID) is defined at deployment time in the
respective deployment plan for each module previously deployed.</p>

<p>This command has the same ability as with <b>deploy</b> to uninstall
applications when the server is not running, this command has the following syntax:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy &lt;general_options&gt; --offline undeploy &lt;moduleID&gt;
</pre>
</div></div>

<p><a href="#deploy-top">Back to top</a></p>

<h3><a name="deploy-Distribute"></a>Distribute</h3>

<p>Use the <b>distribute</b> command to add a new module to the server.
This command does not start the module nor mark it to be started in the future. The distribute
command has the following syntax:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy &lt;general_options&gt; distribute &lt;module&gt; &lt;deployment_plan&gt;
</pre>
</div></div>

<p>Just like with the deploy command, &lt;module&gt; specifies the application
file name and location. The &lt;deployment_plan&gt; specifies the file name and location
of the XML with the deployment plan. Sometimes the application module already has included
in the package a deployment plan or the application is so simple that does not require any
deployment plan, in these cases this parameter can be omitted.</p>

<p>A module file can be one of the following:</p>
<ul>
	<li>J2EE Enterprise Application Archive (EAR) file</li>
	<li>J2EE Web Application Archive (WAR) file</li>
	<li>J2EE Enterprise JavaBean Archive (JAR) file</li>
	<li>J2EE Java Resource Archive (RAR) file</li>
</ul>


<p><a href="#deploy-top">Back to top</a></p>

<h3><a name="deploy-Encrypt"></a>Encrypt</h3>

<p>Use the <b>encrypt</b> command to encrypt a string. The encrypt command
has the following syntax:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy &lt;general_options&gt; encrypt &lt;String&gt;
</pre>
</div></div>

<p>Where &lt;String&gt; specifies the string to get encrypted. </p>

<p>Examples:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy -h localhost -p 1099 encrypt passw0rd
</pre>
</div></div>

<p>That command will encrypt the passw0rd string when the server is running.</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy -o encrypt passw0rd
</pre>
</div></div>

<p>That command will encrypt the passw0rd string when the server is not running.</p>

<p><a href="#deploy-top">Back to top</a></p>

<h3><a name="deploy-Installlibrary"></a>Install-library</h3>

<p>Use the <b>install-library</b> command to install a library into server's
repository. The install-library command has the following syntax:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy &lt;general_options&gt; install-library --groupId groupName &lt;libraryFile&gt;
</pre>
</div></div>

<p>Use the <b>&#45;-groupId</b> option to specify a non-default group
id for the library. Otherwise, the library file will be installed with the group id named
<b>default</b>.</p>

<p>Examples:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy -u system -p manager install-library mylib-1.0.jar
</pre>
</div></div>

<p>That command will install the mylib-1.0.jar at &lt;geronimo_home&gt;/repository/default/mylib/1.0/mylib-1.0.jar</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy -u system -p manager install-library --groupId mygroup mylib-1.0.jar
</pre>
</div></div>

<p>That command will install the mylib-1.0.jar at &lt;geronimo_home&gt;/repository/mygroup/mylib/1.0/mylib-1.0.jar</p>

<p><a href="#deploy-top">Back to top</a></p>

<h3><a name="deploy-Listmodules"></a>List-modules</h3>

<p>Use the <b>list-modules</b> command to list all available modules on
the server, note that for running this command the server must be running. The list-modules
command has the following syntax:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy &lt;general_options&gt; list-modules [--all|--started|--stopped]
</pre>
</div></div>

<ul>
	<li>&#45;-all : is used by default when no other option is specified. It will list
all the available modules.</li>
	<li>&#45;-started : this option will list only the modules that are running.</li>
	<li>&#45;-stopped : this option will list only the modules that are not running.</li>
</ul>


<p><a href="#deploy-top">Back to top</a></p>

<h3><a name="deploy-Listtargets"></a>List-targets</h3>

<p>Use the <b>list-targets</b> command to lists the targets known to the
server you have connected to. The list-targets command has the following syntax:</p>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy &lt;general_options&gt; list-targets
</pre>
</div></div>

<p>In the case of Geronimo, each configuration store is a separate target. Geronimo
does not yet support clusters as targets.</p>

<p><a href="#deploy-top">Back to top</a></p>

<h3><a name="deploy-Installplugin"></a>Install-plugin</h3>

<p>Use the <b>install-plugin</b> command to install a Geronimo plugin previously
exported from a Geronimo server or downloaded from a repository. A Geronimo plugin can be
an application, a configuration such data sources and drivers or a combination. The install-plugin
command has the following syntax:</p>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy install-plugin &lt;plugin_file&gt;
</pre>
</div></div>

<p><a href="#deploy-top">Back to top</a></p>

<h3><a name="deploy-Searchplugins"></a>Search-plugins</h3>

<p>Use the <b>search-plugins</b> command to list all the Geronimo plugins
available in a Maven repository. The search-plugins command has the following syntax:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>deploy search-plugins &lt;maven_repository_URL&gt;
</pre>
</div></div>

<p><a href="#deploy-top">Back to top</a></p>
     </div>
     <div id="commentsSection" class="wiki-content pageSection">
       <div style="float: right;">
            <a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
       </div>

       <a href="http://cwiki.apache.org/confluence/display/GMOxDOC22/deploy">View Online</a>
       |
       <a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=102663&revisedVersion=10&originalVersion=9">View
Change</a>
              |
       <a href="http://cwiki.apache.org/confluence/display/GMOxDOC22/deploy?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message