Skip to content

Commit aa898d4

Browse files
committed
[webapp] make webapp & scouter pulse working together
1 parent 47725f5 commit aa898d4

File tree

3 files changed

+45
-31
lines changed

3 files changed

+45
-31
lines changed

scouter.server/src/main/java/scouter/server/http/HttpServer.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -70,20 +70,14 @@ public void run() {
7070
RequestLogHandler requestLogHandler = new RequestLogHandler();
7171
requestLogHandler.setRequestLog(requestLog);
7272

73-
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
74-
context.setContextPath("/");
75-
context.addServlet(new ServletHolder(CounterServlet.class), "/counter/*");
76-
context.addServlet(new ServletHolder(RegisterServlet.class), "/register/*");
77-
73+
ServletContextHandler context = null;
7874
handlers.addHandler(requestLogHandler);
79-
handlers.addHandler(context);
80-
81-
server.setHandler(handlers);
8275

8376
if (conf.net_http_api_enabled) {
8477
try {
8578
Class c = Class.forName("scouterx.webapp.main.WebAppMain");
86-
c.getMethod("setWebAppContext", Server.class).invoke(null, server);
79+
Object result = c.getMethod("setWebAppContext").invoke(null);
80+
context = (ServletContextHandler) result;
8781
} catch (Throwable e) {
8882
Logger.println("Error while loading webapp api context!");
8983
System.out.println("Error while loading webapp api context!");
@@ -92,6 +86,16 @@ public void run() {
9286
}
9387
}
9488

89+
if (context == null) {
90+
context = new ServletContextHandler(ServletContextHandler.SESSIONS);
91+
context.setContextPath("/");
92+
}
93+
context.addServlet(new ServletHolder(CounterServlet.class), "/counter/*");
94+
context.addServlet(new ServletHolder(RegisterServlet.class), "/register/*");
95+
96+
handlers.addHandler(context);
97+
server.setHandler(handlers);
98+
9599
try {
96100
server.start();
97101
server.join();

scouter.webapp/src/main/java/scouterx/webapp/layer/controller/CounterController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public CounterController() {
5454

5555
/**
5656
* get current value of several counters about a type
57-
* uri : /counter/realTime/{counters}/ofType/{objType}?serverId=1001010&counters=GcCount,GcTime or ?counters=[GcCount,GcTime]
57+
* uri : /counter/realTime/{counters}/ofType/{objType}?serverId=1001010
5858
*
5959
* @param objType
6060
* @param counterNameByCommaSeparator

scouter.webapp/src/main/java/scouterx/webapp/main/WebAppMain.java

Lines changed: 31 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,23 @@ public static boolean isStandAloneMode() {
6363
}
6464

6565
public static void main(String[] args) {
66-
WebAppMain.standAloneMode = true;
66+
standAloneMode = true;
6767
Logo.print(true);
6868
initializeLogDir();
6969

7070
ConfigureAdaptor conf = ConfigureManager.getConfigure();
7171
connectScouterCollector();
7272

7373
Server server = new Server(conf.getNetHttpPort());
74-
setWebAppContext(server);
74+
HandlerCollection handlers = new HandlerCollection();
75+
76+
RequestLogHandler requestLogHandler = setRequestLogHandler();
77+
handlers.addHandler(requestLogHandler);
78+
79+
ServletContextHandler context = setWebAppContext();
80+
handlers.addHandler(context);
81+
82+
server.setHandler(handlers);
7583

7684
try {
7785
server.start();
@@ -81,6 +89,23 @@ public static void main(String[] args) {
8189
}
8290
}
8391

92+
private static RequestLogHandler setRequestLogHandler() {
93+
ConfigureAdaptor conf = ConfigureManager.getConfigure();
94+
95+
NCSARequestLog requestLog = new NCSARequestLog();
96+
requestLog.setFilename("./logs/http-request-yyyy_mm_dd.log");
97+
requestLog.setFilenameDateFormat("yyyy_MM_dd");
98+
requestLog.setRetainDays(conf.getLogKeepDays());
99+
requestLog.setAppend(true);
100+
requestLog.setExtended(true);
101+
requestLog.setLogCookies(false);
102+
requestLog.setLogTimeZone(TimeZone.getDefault().getID());
103+
RequestLogHandler requestLogHandler = new RequestLogHandler();
104+
requestLogHandler.setRequestLog(requestLog);
105+
106+
return requestLogHandler;
107+
}
108+
84109
private static void connectScouterCollector() {
85110
Logger log = LoggerFactory.getLogger(WebAppMain.class);
86111

@@ -149,37 +174,20 @@ private static void initializeLogDir() {
149174
firstLogger.info("scouter webapp starting! Run-Mode:" + (WebAppMain.standAloneMode ? "StandAlone" : "Embedded"));
150175
}
151176

152-
public static void setWebAppContext(Server server) {
177+
public static ServletContextHandler setWebAppContext() {
153178
ConfigureAdaptor conf = ConfigureManager.getConfigure();
154179

155180
//The case - embedded mode (run in-process of scouter server)
156-
if (WebAppMain.standAloneMode == false) {
181+
if (!standAloneMode) {
157182
initializeLogDir();
158183
connectScouterCollector();
159184
}
160185

161-
HandlerCollection handlers = new HandlerCollection();
162-
NCSARequestLog requestLog = new NCSARequestLog();
163-
requestLog.setFilename("./logs/http-request-yyyy_mm_dd.log");
164-
requestLog.setFilenameDateFormat("yyyy_MM_dd");
165-
requestLog.setRetainDays(conf.getLogKeepDays());
166-
requestLog.setAppend(true);
167-
requestLog.setExtended(true);
168-
requestLog.setLogCookies(false);
169-
requestLog.setLogTimeZone(TimeZone.getDefault().getID());
170-
RequestLogHandler requestLogHandler = new RequestLogHandler();
171-
requestLogHandler.setRequestLog(requestLog);
172-
173186
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
174187
context.getSessionHandler().setMaxInactiveInterval(conf.getNetHttpApiSessionTimeout());
175188

176189
context.setBaseResource(Resource.newClassPathResource("/webroot"));
177-
178190
context.setContextPath("/");
179-
handlers.addHandler(requestLogHandler);
180-
handlers.addHandler(context);
181-
182-
server.setHandler(handlers);
183191

184192
ServletHolder jerseyHolder = new ServletHolder(ServletContainer.class);
185193
jerseyHolder.setInitParameter("jersey.config.server.provider.packages", "scouterx.webapp");
@@ -191,5 +199,7 @@ public static void setWebAppContext(Server server) {
191199
ServletHolder defaultHolder = new ServletHolder("default", DefaultServlet.class);
192200
defaultHolder.setInitParameter("dirAllowed","false");
193201
context.addServlet(defaultHolder,"/");
202+
203+
return context;
194204
}
195205
}

0 commit comments

Comments
 (0)