java实现html转pdf-基于PhantomJS

一、前言

PhantomJS是一个无界面浏览器,可以在服务端通过命令行的方式使用。旨在用于页面自动化(page automation,网络监控(network monitoring, 页面截屏(screen capture,与无界面测试(headless testing)。

本文将介绍使用PhantomJS官方实现将网络页面与本地html文件渲染为pdf文件。

二、安装

去官网(http://phantomjs.org/download.html)下载合适的软件包——本文使用windows的软件包为例子。

下载软件包后,解压到指定位置(本文解压并改名为phantomjs——D:\dev\phantomjs)。

三、使用

PhantomJS官方提供很多优秀的例子(http://phantomjs.org/examples/),本文就是直接使用了其中一个例子(rasterize.js)。 继续阅读java实现html转pdf-基于PhantomJS

apache+tomcat配置负载均衡,实现http与websocket接口分压

一、应用场景

在生产环境中,应用服务器(此文以tomcat为例)不免面临高访问量的压力,相比而言web服务器(此文以apache为例)能够承担更大的并发量。Apache本身带有一些模块,可以完成对应用服务器访问流量分流分压的功能。这里就以apache+tomcat配置负载均衡的方式,实现httpwebsocket接口分压的效果。

二、系统环境

服务器:阿里云ECS服务器;

操作系统:ubuntu 14

应用服务器:tomcat 8.5+;

Web服务器:apache 2.4+;

三、Tomcat配置

tomcat官网下载压缩包,解压为两个tomcat实例(分别为tomcat-8080tomcat-8082)。

a) 修改tomcat-8080的配置文件(conf/server.xml

 <Connector port=”8080″ protocol=”HTTP/1.1″

               connectionTimeout=”20000″

               redirectPort=”8443″ URIEncoding=”UTF-8″ />

 <Connector port=”8010″ protocol=”AJP/1.3″

redirectPort=”8443″ URIEncoding=”UTF-8″ />

 <Engine name=”Catalina” defaultHost=”localhost” jvmRoute=”jvm8080″>

四、修改tomcat-8082的配置文件(conf/server.xml

 <Connector port=”8082″ protocol=”HTTP/1.1″

               connectionTimeout=”20000″

               redirectPort=”8443″ URIEncoding=”UTF-8″ />

 <Connector port=”8012″ protocol=”AJP/1.3″

redirectPort=”8443″ URIEncoding=”UTF-8″ />

 <Engine name=”Catalina” defaultHost=”localhost” jvmRoute=”jvm8082″> 继续阅读apache+tomcat配置负载均衡,实现http与websocket接口分压

2017遇见更好的自己

IT技术

(一)前端技术

推广并监督gulp在前端项目开发过程中的应用。

抽象并组织前端UI模块,并初步实现UI模块的复用性。

初步了解reactangular前端框架的使用场景与使用规范。

(二)后端技术

完善代码生成工具(codecoder)的易用性。

深入了解UMLRUP,并进行应用。

培养源于优秀源代码的习惯。

进一步了解并应用设计模式。

进一步了解jvm实现原理。

(三)自动化运维技术

初步了解自动化运维工具。

(四)互联网运营技术

了解提高流量转化率的方法。

(五)大数据处理技术

夯实大数据相关的数据基础。

了解马尔可夫算法、贝利叶算法与人工神经网络算法。

项目管理

(六)范围管理

初步掌握做需求分析的能力,能够根据需求进文档化与uml建模。

(七)时间管理

能够尽量准确的评估任务时间,并控制任务进度。

(八)质量管理

规范项目基本文档:需求分析文档、系统架构文档、系统部署文档、接口文档、工作分解结构。

规范java编程与前端编程的基本准则。

(九)人力资源管理

建设学习型知识分享型团队。

(十)沟通管理

交流做到“不卑不亢”。

能够与客户进行有效交流,了解到客户的真实需求。

团队内部做到平等无障碍的沟通。

个人能力

(十一)自我情绪调节能力

能够比较好的进行自我情绪调节。能够排解、转移不良情绪的影响。

(十二)自学能力

能够维持高效的自学能力,能静心学习并掌握理论基础知识。

(十三)沟通能力

能做到有效沟通、积极沟通、理智沟通。

(十四)写作能力

对工作与学习所掌握的知识,通过写作的形式进行归纳总结,并养成一定的写作风格。

java项目,基于maven的模块化开发与微服务架构

自从爱上maven的模块化开发,就不能自拔。

在实际项目中,代码复用是每个公司希望做的一项工作。但在初期,项目紧、任务重的情况下,如何兼顾代码复用(当然,就把复制代码算是最低级的代码复用吧,不过这可就做不到功能抽象的程度)与业务项目开发的确需要一定的构思。

对于单体项目(基本上所有的功能都在一个项目里,最后打包成一个jar或者war),可能规范命名空间(包名、类名),是个不错的选择。——把一个功能封装在一个命名空间里,提供仅有的几个public的API。代码复用以复制文件夹的形式重用,再好点就专门做成一个鱼龙混杂的“基础包”。

maven让你多了一个选择,可以把可重用的功能抽象到一个maven模块里(一般是个jar),在一个项目里积累的maven模块,在可以在项目收尾后进一步抽象为组织过程资产级别的模块。在其他项目里,只需要引入这个jar(maven的pom.xml方式或者ant方式)。

至于业务性质的功能模块(如支付功能,文件上传功能),可以开发为jar,然后被一个war类型的模块引入,一个微服务就出来了。。。。但然也可以根据业务需要,把几个业务jar封装到一个war模块里,一个传统的单体项目也就出来了。。。

当然maven-module模式的架构,需要对maven的应用有一定的了解。不过我相信,站在巨人的肩上,我们能看的更远!

蜗牛,为加班而生~

maven-module多模块依赖项目在eclipse中搭建与开发

一、Maven-module多模块依赖项目说明

Maven-module项目可以把较大的项目按照功能或者层次进行横向与纵向的模块化分割。项目结构是父项目子模块的结构进行组织。整个项目以pom型项目进行组织,其模块可以是jar项目,也可以是war项目,也可以pom项目。合理的使用maven-module项目,可以是项目结构分明,同时提高了代码的复用性。

二、Maven-module项目示例结构

本文以maven插件官方示例(具体地址请查看附录)为素材,进行了项目搭建、运行与打包。项目代码压缩包请查看附录。

Maven project structure

pom.xml          (top level pom with packaging pom)

my-api/pom.xml     (api project with packaging jar)

my-api-impl/pom.xml  (api implementation project with packaging jar)

my-webapp/pom.xml   (webapp project with packaging war)

三、Maven-module项目eclipse下使用tomcat启动

直接上图

继续阅读maven-module多模块依赖项目在eclipse中搭建与开发