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