在ActiveMQ中的activemq.bat启动的时候,通过jetty启动ActiveMQ的管理控制台界面。在一般的Java应用程序中如果想让WEB应用程序启动,那么比较简单的方式就是通过使用jetty启动web应用程序。
具体代码如下:
package org.apache.activemq.tool;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.bio.SocketConnector;
import org.eclipse.jetty.webapp.WebAppContext;
/**
*
*/
public final class WebServer {
public static final int PORT = 8080;
// public static final String WEBAPP_DIR = "target/activemq";
public static final String WEBAPP_DIR = "src/webapp";
public static final String WEBAPP_CTX = "/";
private WebServer() {
}
public static void main(String[] args) throws Exception {
Server server = new Server();
Connector context = new SocketConnector();
context.setServer(server);
context.setPort(PORT);
String webappDir = WEBAPP_DIR;
if (args.length > 0) {
webappDir = args[0];
}
WebAppContext webapp = new WebAppContext();
webapp.setServer(server);
webapp.setContextPath(WEBAPP_CTX);
webapp.setResourceBase(webappDir);
server.setHandler(webapp);
server.setConnectors(new Connector[] {
context
});
server.start();
}
}
配置登录监视控制台的用户名和密码。
打开conf文件夹下的jetty.xml,找到
1
2
3
4
5
6
7
8
9
|
<
bean
id
=
"securityConstraint"
>
<
property
name
=
"name"
value
=
"BASIC"
/
>
<
property
name
=
"roles"
value
=
"admin"
/
>
<
property
name
=
"authenticate"
value
=
"false"
/
>
<
/
bean
>
|
把authenticate属性的值改成true即可,重启activemq.bat,再登录监视控制台,就需要输入密码了,默认的用户名和密码是admin/admin。roles属性指的是登录的用户角色,这些登录的用户在jetty-realm.properties配置。
修改web的访问端口,在jetty.xml找到一下配置,修改8161即可。
1
2
3
4
5
6
7
|
<
property
name
=
"connectors"
>
<list>
<
bean
id
=
"Connector"
class
=
"org.eclipse.jetty.server.nio.SelectChannelConnector"
>
<
property
name
=
"port"
value
=
"8161"
/
>
<
/
bean
>
<
/
list
>
<
/
property
>
|
ActiveMQ的运行日志存放在data文件夹下的activemq.log中。