分类:: Java

0

Tomcat启动变慢问题解决方案

最近发现Tomcat在服务器上部署的时间越来越长,以前是需要大概5-6秒中,现在的实践基本上是5-6分钟,而且一直卡在这个地方: 128-Mar-2018 00:58:11.810 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for

0

[转]VisualVM 入门指南

VisualVM 提供在 Java 虚拟机 (Java Virutal Machine, JVM) 上运行的 Java 应用程序的详细信息。在 VisualVM 的图形用户界面中,您可以方便、快捷地查看多个 Java 应用程序的相关信息。 本入门指南应当对您快速设置并运行 VisualVM 有所帮助。本指南将演示如何安装 VisualVM,以及如何通过安装 VisualVM 更新中心提供的插件向该

0

JDK9将JvisualVM工具移除

最新资讯从JVisualVM的官方网站可以看出,这个项目已经迁移到了Github平台上。官网英文如下: VisualVM comes in two distributions: VisualVM at GitHub and Java VisualVM as a JDK tool. VisualVM at GitHub is a bleeding-edge distribution with t

0

Tomcat从Nginx服务器获取客户端IP

这篇文章的信息量有点多,因为需要从这一点衍生出不少容易踩的坑。先说说标题中的问题,主要是使用了Nginx做反向代理服务器,然后后端Tomcat服务器无法获取用户真实的IP地址,使用httpServletRequest.getRemoteAddr()一直都是127.0.0.1。我们先来说一说为什么是这样? 为什么getRemoteAddr()一直是127.0.0.1?首先需要明白整体的架构图,如下

0

Quartz定时任务注入Spring服务

前两天完成了Quartz和Spring的整合,见《Spring与Quartz整合实践》,但是当时给出的例子中并没有使用Spring的Service来实现一些功能,今天调试的时候问题就出现了。Quartz中的Job居然无法识别Spring的Service Bean对象?! 在各大论坛找了很久,发现一点问题了。原因是Job类是由Quartz的Job工厂来加载的,而在Spring中,这个Job工厂加载的

0

Spring与Quartz整合实践

什么是Quartz?Quartz是一款基于Java语言的作业调度框架。一般用来创建或简单或复杂的调度时间表,执行Java下任意数量的作业。 可以通过CronTrigger定义Quartz的调度时间表(例如0 0 12 ? * WED表示“每周三上午12:00”)。此外,时间表也可以通过SimpleTrigger,由Date定义触发的开始时间、毫秒的时间间隔和重复计数(例如“在下周三12:00,然

0

阿里云验证码服务实践

在平时上网的时候,我们会见到很多不同的验证码,大多数都是图形验证码,有数字的,有大小写字母的,也有中文的等等。但是这些验证码往往特别容易被OCR技术识别,所以针对人的识别就显得没那么准确了。本文将借力阿里云的验证码服务,介绍一种滑动式的验证码服务实践。 传统验证码服务传统的验证码基本上都类似于下面这种:它的主要实现方式就是在一个图片上打印出一些文字,然后再添加一些噪声,起一个混淆的作用,主要是用

0

Drools与SpringMVC整合

本文主要介绍Drools6.4.Final版本与SpringMVC的整合。网上现有的教程大多数不能完整运行,本文将会提供具体的操作过程以及相应的注意事项,保证Demo代码是可以跑通的。 开发环境 macOS High Sierra Intellij IDEA 2017.2 Drools 6.4.0.Final SpringMVC 4.3.12.RELEASE JDK 1.8.0_144 搭建Ma

0

Velocity编程指南(五)

本章作为这个系列的最后一章,主要是讲如何在Java代码中运行Velocity模板引擎,还是一贯的套路,使用Maven项目来演示,主要从以下几个方面来讲: pom依赖 程序演示 结果展示 注意事项 总结 pom依赖在网站http://www.mvnrepository.com中搜索“velocity”,就可以得到这个依赖: 12345<dependency> <group

0

Velocity编程指南(四)

无论是哪种编程语言,都应该支持一些函数,VTL也不例外,只不过在Velocity中我们不叫它函数,叫它宏(Macro),宏允许我们定义一系列的动作,并且重复使用它。使用的时候主要是创造一些自定义的新命令,什么命令都可以,都可以通过#号来表示。 #macro命令来简单看一下Velocity宏的使用吧: 123#macro ( tr )<tr><td></td>&l