本文介绍一种集成在项目中的java进程监控工具JavaMelody 集成在web项目中使用 依赖 <!-- javamelody-core --> <dependency> <groupId>net.bull.javamelody</groupId> <artifactId>javamelody-core</artifactId> <version>1.68.1</version> </dependency> <!-- itext, option to add PDF export --> <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <version>2.1.7</version> <exclusions> <exclusion> <artifactId>bcmail-jdk14</artifactId> <groupId>bouncycastle</groupId> </exclusion> <exclusion> <artifactId>bcprov-jdk14</artifactId> <groupId>bouncycastle</groupId> </exclusion> <exclusion> <artifactId>bctsp-jdk14</artifactId> <groupId>bouncycastle</groupId> </exclusion> </exclusions> </dependency> <!--xml json expoer--> <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.4.2</version> </dependency> <dependency> <groupId>org.jrobin</groupId> <artifactId>jrobin</artifactId> <version>1.5.9</version> </dependency> 访问账户设置 设置一个访问密码 -Djavamelody.authorized-users=root:root 效果 ![][2] ![][3] ![][4] …
dubbo升级,集成rest服务
修改项目依赖 升级dubbo->dubbox,添加rest协议依赖,修改pom.xml <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.8.4</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-client</artifactId> <version>3.0.7.Final</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-netty</artifactId> <version>3.0.7.Final</version> </dependency> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.0.0.GA</version> </dependency> 修改dubbo-provider配置 <dubbo:protocol name="dubbo" port="${dubbo.port}" threads="1000"/> <dubbo:protocol path="rest" name="rest" port="8077" server="netty" threads="1000" /> <dubbo:service interface="com.yizhenmoney.damocles.uther.rpc.Rcm4TJYAdapter" ref="tjyService" protocol="dubbo,rest" registry="provideregistry" timeout="500"/> 上面列出来的是主要的修改部分,定义了两种协议方式,rest中的path为服务的根路径,port为rest对外的端口,’server’为处理处理请求的方式,此处用的是netty 实现方法修改 @Service @Path("tjy") public class TjyService implements Rcm4TJYAdapter { @Override @POST @Path("rcmRoute") @Consumes({"application/json;charset=UTF-8"})@Produces("application/json;charset=utf-8") public String rcmRoute(String method, String sign, String biz_data) { log.info("method:" + method + "biz_date:" + biz_data); //验签 String result = ERROR; Boolean isok = false; try { isok = true;//RsaEncrypt.getINSTANCE().doCheck(biz_data, Base64Utils.decode(sign)); } catch (Exception e) { log.error("验签失败", e); } if (!isok) { return result; } try...…
maven使用总结
module打包命名 使用mvn package <packaging>war</packaging> <build> <finalName>uther</finalName> </build> mvn war:war <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <warName>uther</warName> </configuration> </plugin> mav jar:jar <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.3.2</version> <configuration> <finalName> uther </finalName> </configuration> </plugin> 跳过单元测试 -Dmaven.test.skip=true不执行、不编译也单元测试 -DskipTests不执行,会编译待援测试 对应上面两种方式的pom文件配置 不执行、不编译 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.5</version> <configuration> <skip>true</skip> </configuration> </plugin> 不执行、仅编译 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.5</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> 多模块同时编译 项目中模块一般都是有依赖关系的,打包一个项目的同时往往需要先打包一些依赖模块,在项目根目录执行mvn clean package -pl module_name -am 参数解释: -am --also-make 同时构建所列模块的依赖模块;If project list is specified, also build projects required by the list -amd -also-make-dependents 同时构建依赖于所列模块的模块; If project list is specified, also build projects that depend on projects on the list -pl --projects 构建制定的模块,模块间用逗号分隔;Comma-delimited list of specified reactor projects to...…
关闭263客户端弹出的无效更新提示
公司选用263云通信作为内部IM工具,吐槽一下平时工作要同事开着QQ、微信、263,每次打开263都会弹出一个提示 点击更新却发现http://sim.update.263em.com/EmMac.dmg这个地址根本不存在。 联系客服 首先想到的就是联系客服,10分钟没有任何解决方案 hack 如果应用是以sim.update.263em.com这个地址检查更新,修改hosts文件,127.0.0.1 sim.update.263em.com,无效; 打开应用的包,在包下查找类似1.2的版本信息,也没有找到; 查看Info.plist尝试改了一些参数,有些改完之后无法启动,直到有一个参数CFBundleVersion当前为29,改为50后,重启不在会弹出升级提示。 …
centos7服务端口被拒绝
公司办公地点搬迁,冷启动服务器后一部分服务无法连接 状况 右边异常,左边正常 检查服务配置、端口 已zookeeper为例, 检查zoo.cfg,正常 启动后检查对应端口netstat -lnp|grep 2181,正常 检查系统防火墙配置 sudo service iptables status发现有一个firewall是开启的,网上查找后发现是centos7开启的防火墙,检查几台服务器,不正常的都是centos7,使用命令关闭后,服务恢复正常 centos7-firewall systemctl start firewalld # 启动 systemctl enable firewalld # 开机启动 systemctl stop firewalld # 关闭 systemctl disable firewalld # 取消开机启动 …
java-concurrent
线程应用 使用两种不同的方式实现线程等待: public static void main(String[] args) { Thread thread=new Thread(()->{ try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } }); long startTime = System.currentTimeMillis(); thread.start(); try { thread.join(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println((System.currentTimeMillis()-startTime)/1000); } public static void main(String[] args) { Object obj = new Object(); Thread thread = new Thread(() -> { try { Thread.sleep(2000); synchronized (obj) {//需要获得锁才能执行notify、wait,否则会有java.lang.IllegalMonitorStateException异常 obj.notify(); } } catch (InterruptedException e) { e.printStackTrace(); } }); long startTime = System.currentTimeMillis(); thread.start(); try { synchronized (obj) { obj.wait(); } } catch (InterruptedException e) { e.printStackTrace(); } System.out.println((System.currentTimeMillis() - startTime) / 1000); } Lock、Condition public...…