2021년 10월 17일 일요일

[자바JMX,웹예제]contextInitialized에서 MBean등록하기

 [자바JMX,웹예제]contextInitialized에서 MBean등록하기

- test라는 이름으로 Dynamic Web Project 생성

- 아래 파일을 만들자

[Counter.java]

package example.jmx.mbean;

import java.util.Date;

import example.jmx.web.MyCounter;

public class Counter implements CounterMBean {

private String name;

public Counter() {

this.name = "InitialName";

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

@Override

public void resetCounter() {

MyCounter.resetCounter();

}

@Override

public void resetCounter(int start) {

MyCounter.resetCounter(start);

}

@Override

public int getCurrentCount() {

return MyCounter.getCurrentCount();

}

@Override

public Date getCurrentTime() {

return new Date();

}

@Override

public long getCurrentTimeMilis() {

return System.currentTimeMillis();

}

}

[CounterMBean.java]

package example.jmx.mbean;

import java.util.Date;

public interface CounterMBean {

void resetCounter();

void resetCounter(int start);

int getCurrentCount();

Date getCurrentTime();

long getCurrentTimeMilis();

}

[CounterServlet.java]

package example.jmx.web;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@WebServlet("/count")

public class CounterServlet extends HttpServlet {

private static final long serialVersionUID = 886395215542306826L;

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setAttribute("COUNT", MyCounter.incrementAndGet());

request.getRequestDispatcher("/WEB-INF/views/view.jsp").forward(request, response);

}

}

[MyCounter.java]

package example.jmx.web;

import java.util.concurrent.atomic.AtomicInteger;

public class MyCounter {

private static AtomicInteger counter = new AtomicInteger(0);

public static int incrementAndGet() {

return counter.incrementAndGet();

}

public static int getCurrentCount() {

return counter.get();

}

public static void resetCounter() {

resetCounter(0);

}

public static void resetCounter(int start) {

counter = new AtomicInteger(start);

}

}

[RegisterMBenasListener.java]

package example.jmx.web;

import java.util.concurrent.atomic.AtomicInteger;

public class MyCounter {

private static AtomicInteger counter = new AtomicInteger(0);

public static int incrementAndGet() {

return counter.incrementAndGet();

}

public static int getCurrentCount() {

return counter.get();

}

public static void resetCounter() {

resetCounter(0);

}

public static void resetCounter(int start) {

counter = new AtomicInteger(start);

}

}

[/WEB-INF/views/view.jsp]

<html>

</head>

<body>

<h1>JmxExample :: Count</h1>

<p>Current count is ${COUNT}.</p>

<ul>

<li><a href="home.jsp">Home</a></li>

<li><a href="count">Counter Servlet</a></li>

</ul>

</body>

</html>

[home.jsp]

<html>

</head>

<body>

<h1>JmxExample :: Home</h1>

<ul>

<li><a href="index.jsp">Home</a></li>

<li><a href="count">Counter Servlet</a></li>

</ul>

</body>

</html>

[카운터 서블릿을 실행해서 브라우저에서 확인하자.]

http://localhost:8080/test/count

[ jconsole 실행 후 JmxExampleApp의 Counter MBean을 찾아서 메소드를 실행하자.]

c:> jconsole

댓글 없음:

댓글 쓰기

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...