blob: b778fe3c2688df134c099b9c367bd43ecb1207bf [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Telnet Console</title>
<meta name="description" content="Apache TomEE">
<meta name="author" content="Apache TomEE">
<meta name="google-translate-customization" content="f36a520c08f4c9-0a04e86a9c075ce9-g265f3196f697cf8f-10">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
<meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate, max-age=0">
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le styles -->
<link href="./resources/css/bootstrap.css" rel="stylesheet">
<link href="./resources/css/prettify.css" rel="stylesheet">
<!--link href="./resources/css/bootstrap-mods.css" rel="stylesheet"-->
<link href="./resources/css/main.css" rel="stylesheet">
<link href="./resources/font-awesome-4.6.3/css/font-awesome.min.css" rel="stylesheet">
<script type="text/javascript">
var t = encodeURIComponent(document.title.replace(/^\s+|\s+$/g,""));
var u = encodeURIComponent(""+document.URL);
function fbshare () {
window.open(
"http://www.facebook.com/sharer/sharer.php?u="+u,
'Share on Facebook',
'width=640,height=426');
};
function gpshare () {
window.open(
"https://plus.google.com/share?url="+u,
'Share on Google+',
'width=584,height=385');
};
function twshare () {
window.open(
"https://twitter.com/intent/tweet?url="+u+"&text="+t,
'Share on Twitter',
'width=800,height=526');
};
function pinshare () {
window.open("//www.pinterest.com/pin/create/button/?url="+u+"&media=http%3A%2F%2Ftomee.apache.org%2Fresources%2Fimages%2Ffeather-logo.png&description="+t,
'Share on Pinterest',
'width=800,height=526');
};
</script>
<!-- Le fav and touch icons -->
<link rel="shortcut icon" href="./favicon.ico">
<link rel="apple-touch-icon" href="./resources/images/apple-touch-icon.png">
<link rel="apple-touch-icon" sizes="72x72" href="./resources/images/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="114x114" href="./resources/images/apple-touch-icon-114x114.png">
<script src="./resources/js/prettify.js" type="text/javascript"></script>
<script src="./resources/js/jquery-latest.js"></script>
<script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
<script src="./resources/js/common.js"></script>
<script src="./resources/js/prettyprint.js"></script>
<!--script src="//assets.pinterest.com/js/pinit.js" type="text/javascript" async></script//-->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-2717626-1']);
_gaq.push(['_setDomainName', 'apache.org']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body>
<div class="topbar" data-dropdown="dropdown">
<div class="fill">
<div class="container">
<a class="brand" href="./index.html">Apache TomEE</a>
<ul class="nav">
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
Apache
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<!-- <li><a href="./misc/whoweare.html">Who we are?</a></li> -->
<!-- <li><a href="./misc/heritage.html">Heritage</a></li> -->
<li><a href="http://www.apache.org">Apache Home</a></li>
<!-- <li><a href="./misc/resources.html">Resources</a></li> -->
<li><a href="./misc/contact.html">Contact</a></li>
<li><a href="./misc/legal.html">Legal</a></li>
<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
<li class="divider"/>
<li><a href="http://www.apache.org/security">Security</a></li>
</ul>
</li>
<li><a href="./index.html">Home</a></li>
<li><a href="./downloads.html">Downloads</a></li>
<li><a href="./documentation.html">Documentation</a></li>
<li><a href="./examples-trunk/index.html">Examples</a></li>
<li><a href="./support.html">Support</a></li>
<li><a href="./contribute.html">Contribute</a></li>
<li><a href="./security/index.html">Security</a></li>
</ul>
<!-- Google CSE Search Box Begins -->
<FORM class="pull-right" id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
<INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
<INPUT type="hidden" name="cof" value="FORID:0">
<INPUT size="18" width="130" style="width:130px" name="q" type="text" placeholder="Search">
</FORM>
<!--<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>-->
<!-- Google CSE Search Box Ends -->
</div>
</div>
</div>
<div class="container">
<div class="page-header">
<small><a href="./index.html">Home</a></small><br>
<h1>Telnet Console
<div style="float: right; position: relative; bottom: -10px; ">
<a onclick="javascript:gpshare()" class="gp-share sprite" title="Share on Google+">share [gp]</a>
<a onclick="javascript:fbshare()" class="fb-share sprite" title="Share on Facebook">share [fb]</a>
<a onclick="javascript:twshare()" class="tw-share sprite" title="Share on Twitter">share [tw]</a>
<a onclick="javascript:pinshare()" class="pin-share sprite" title="Share on Pinterest">share [pin]</a>
<a data-toggle="modal" href="#edit" class="edit-page" title="Contribute to this Page">contribute</a>
</div>
</h1>
</div>
<p><div class="note">} Availability: Since OpenEJB 0.9{note}</p>
<p><a name="TelnetConsole-BasicUsage"></a></p>
<h1>Basic Usage</h1>
<p>To use OpenEJB's Telnet Console, simply boot your server normally.</p>
<blockquote>
<p>$ ./bin/openejb start</p>
</blockquote>
<pre><code>OPENEJB_HOME=/Users/dblevins/Desktop/openejb-1.0
OpenEJB 1.0 build: 20060226-1701
http://www.openejb.org
resources 1
OpenEJB ready.
[init]
</code></pre>
<p>OpenEJB Remote Server
<em>* Starting Services *</em>
NAME IP PORT <br />
webadmin 0.0.0.0 4203 <br />
httpejbd 0.0.0.0 4204 <br />
telnet 0.0.0.0 4202 <br />
ejbd 0.0.0.0 4201 <br />
admin 0.0.0.0 4200 <br />
-------
Ready!</p>
<p>Then in another shell telnet in </p>
<blockquote>
<p>$ telnet localhost 4202</p>
</blockquote>
<pre><code>Trying ::1...
Connected to localhost.
Escape character is '^]
</code></pre>
<p>'.
OpenEJB Remote Server Console
type 'help' for a list of commands
[openejb]
$ help
stop
exit
system
version
lookup
help
[openejb]
$ system
Containers:
Default BMP Container
Default CMP Container
Default Stateful Container
Default Stateless Container</p>
<pre><code>Deployments:
client/tests/stateful/EncBean
client/tests/entity/cmp/RMI-over-IIOP/EJBHome
client/tests/stateful/BasicStatefulHome
ClientTools/ViewClass
Webadmin/Configuration
EJBGenerator/CreateEJB
ClientTools/InvokeObject
Webadmin/Properties
client/tests/stateful/RMI-over-IIOP/EJBHome
Webadmin/Home
client/tests/entity/bmp/allowed_operations/EntityHome
client/tests/entity/cmp/EncBean
httpd/DefaultBean
client/tests/stateful/BeanManagedBasicStatefulHome
client/tools/DatabaseHome
client/tests/entity/bmp/EncBean
config/webadmin/ConfigurationData
deploy/webadmin/Deployer
ClientTools/ViewJndi
Webadmin/DeploymentList
client/tests/stateless/BeanManagedBasicStatelessHome
Webadmin/CMPMapping
client/tests/stateless/EncBean
client/tests/stateful/BeanManagedTransactionTests/EJBHome
client/tests/entity/bmp/RMI-over-IIOP/EJBHome
Webadmin/ListLogs
client/tests/stateless/BeanManagedTransactionTests/EJBHome
ClientTools/ViewEjb
client/tests/entity/bmp/BasicBmpHome
mapping/webadmin/CMPMappingData
client/tests/stateless/BasicStatelessHome
client/tests/entity/cmp/BasicCmpHome
Webadmin/Deployment
httpd/session
client/tests/entity/cmp/allowed_operations/EntityHome
client/tests/stateless/RMI-over-IIOP/EJBHome
[openejb]
</code></pre>
<p>$ exit
Connection closed by foreign host.</p>
<p><a name="TelnetConsole-ConfiguringtheTelnetService"></a></p>
<h1>Configuring the Telnet Service</h1>
<p>The configuration of all server services (network facing services) is done
in xinet.d style config files. The telnet shell is controlled via the
$OPENEJB_HOME/conf/telnet.properties file. This file is created for you
automatically after the first time OpenEJB boots.</p>
<blockquote>
<p>$ cat conf/telnet.properties </p>
</blockquote>
<pre><code> server = org.openejb.server.telnet.TelnetServer
bind = 127.0.0.1
port = 4202
disabled = false
threads = 5
# only_from = 192.168.1.123
</code></pre>
<p>You can change the IP, port, and even the number of threads allowed to
concurrently access the Telnet service via this file.</p>
<p><a name="TelnetConsole-DisablingtheTelnetService"></a></p>
<h1>Disabling the Telnet Service</h1>
<p>Simply edit the config file and set 'disabled' to true</p>
<pre><code> disabled = true
</code></pre>
<p>Then restart OpenEJB.</p>
<p><a name="TelnetConsole-RestrictingAccess"></a></p>
<h1>Restricting Access</h1>
<p>It is unlikely you want just anyone to be able to login and execute
commands. While you can't restrict access on a user basis, yet, you can
restrict access to specific hosts. Host based access control (HBA) is a
built-in part of any Server Service in OpenEJB and the Telnet Service is no
different. This is done with the 'only_from' property, which like the
rest of the file is a direct copy of the xinet.d syntax for HBA. </p>
<p>For an example to restrict access to the localhost, you could configure the
Telnet Service like this:</p>
<pre><code> server = org.openejb.server.telnet.TelnetServer
bind = 127.0.0.1
port = 4202
disabled = false
threads = 5
only_from = localhost
</code></pre>
<p>If you wanted to restrict access to localhost <em>and</em> say the hosts
192.168.1.207 and 192.168.1.16, you can simply add them to the list.</p>
<pre><code> server = org.openejb.server.telnet.TelnetServer
bind = 127.0.0.1
port = 4202
disabled = false
threads = 5
only_from = localhost, 192.168.1.207, 192.168.1.16
</code></pre>
<div id="edit" class="modal hide fade in" style="display: none; ">
<div class="modal-header">
<a class="close" data-dismiss="modal">x</a>
<h3>Thank you for contributing to the documentation!</h3>
</div>
<div class="modal-body">
<h4>Any help with the documentation is greatly appreciated.</h4>
<p>All edits are reviewed before going live, so feel free to do much more than fix typos or links. If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it. Don't be surprised if we like it so much we ask you for help with other pages :)</p>
<small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
<!--[if gt IE 6]>
<h4>Internet Explorer Users</h4>
<p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
<![endif]-->
</div>
<div class="modal-footer">
Do you have an Apache ID?
<a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
<a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
</div>
</div>
<script src="./resources/js/bootstrap-modal.js"></script>
<footer>
<p>Copyright &copy; 1999-2016 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
Apache TomEE, TomEE, Apache, the Apache feather logo, and the Apache TomEE project logo are trademarks of The Apache Software Foundation.
All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
</footer>
</div> <!-- /container -->
<!-- Javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="./resources/js/bootstrap-dropdown.js"></script>
</body>
</html>