JavaMelody使用的是JRobin画图,在ubuntu 12.04 server版中,图表的中文显示的都是方块。找了很多的资料。说是可以I18N.java中的几个Locale默认设置成中文编码。
我下载了JavaMelody的代码,修改了I18N里的几个Locale为中文Locale,但是还是无效。再修改net.bull.javamelody.JRobin 中的这一段,把中文判断注释掉,还是不生效。
if (Locale.CHINESE.getLanguage().equals(
I18N.getResourceBundle().getLocale().getLanguage())) {
graphDef.setSmallFont(new Font(Font.MONOSPACED, Font.PLAIN, 10));
graphDef.setLargeFont(new Font(Font.MONOSPACED, Font.BOLD, 12));
}
想到以前在Ubuntu中运行Swing程序,中文的问题,估计不是Locale的问题,而是ubuntu 12.04 server 英文版中,没有中文的字库,所以显示不出来。
最后的解决办法是: 从windows系统中,copy了MSYH.TTC和MSYHBD.TTC 2个文件到 服务器的%JAVA_HOME%\jre\lib\fonts\fallback 目录中,(如果fallback目录不存在,就新建一个)。
重启tomcat后,中文就能显示了。效果是不是很炫呢。
附上配置文件。1,在pom.xml依赖中加入
<dependency>
<groupId>net.bull.javamelody</groupId>
<artifactId>javamelody-core</artifactId>
<version>1.48.0</version>
</dependency>
2,在web.xml 中加入
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:net/bull/javamelody/monitoring-spring.xml
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<filter>
<filter-name>monitoring</filter-name>
<filter-class>net.miaosha.web.filter.MiaoshaMonitoringFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>monitoring</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>net.bull.javamelody.SessionListener</listener-class>
</listener>
3,在applicationContext.xml中添加javamelody的监控
<bean id="facadeMonitoringAdvisor" class="net.bull.javamelody.MonitoringSpringAdvisor">
<property name="pointcut">
<bean class="org.springframework.aop.support.JdkRegexpMethodPointcut">
<property name="patterns">
<array>
<value>net\.miaosha\..*</value>
</array>
</property>
</bean>
</property>
</bean>
4,新建权限类中加入系统监控只允许网站管理员查过,如果不需要权限,该类可以不创建,在web.xml中的filter直接用javamelody自带的net.bull.javamelody.MonitoringFilter
package net.miaosha.web.filter;import net.bull.javamelody.MonitoringFilter;
import net.miaosha.biz.user.domain.User;
import net.miaosha.web.common.UserConstants;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;/**
-
User: xiongba
*/
public class MiaoshaMonitoringFilter extends MonitoringFilter {protected boolean isRequestAllowed(HttpServletRequest httpRequest) {
HttpSession session = httpRequest.getSession();
if (session == null) {
return false;
}
User user = (User) session.getAttribute(UserConstants.SEESSION_USER);
if(user==null){
return false;
}
return user.isAdmin();
}
}
5,全部配置完后,就可以通过http://youwebsite/monitoring 来访问了。

欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于