Ubuntu下使用monit
简介
这是一个在类UNIX系统中进行服务监控的工具。 可以用来管理、监控进程、程序、文件、目录、文件系统。使用它可以简化运维工作,例如:
- 如果某个进程没有启动,则启动之
- 如果某个进程没有响应,自动重启
- 如果某个进程消耗过多资源,关闭之
安装和配置
安装
执行下面的命令安…
阅读全文
13 years ago
0
2
ExtJS 4中的数据处理
ExtJS 4的数据处理机制(data包)发生了很大的变化,包含了一些新增加的类,以及对原有的类的重构(提高性能)
概览
ExtJS 4引入了新的Model类,并且对Store、Proxy等类进行了重大的重构,data包的重要类的组织形式如下图:

模型(Mode…
阅读全文
13 years ago
0
Windows下使用Eclipse PDT + XAMPP + XDebug调试PHP
环境说明:Windows 7 X64,Eclipse 4.3.2,XAMPP 1.8.3
XDebug的设置
定位到%XAMPP_HOME%\php\php.ini,打开编辑
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[XDebug] zend_extension = "D:\JavaEE\container\xampp\1.8.3\php\ext\php_xdebug.dll" xdebug.profiler_append = 0 xdebug.profiler_enable = 1 xdebug.profiler_enable_trigger = 0 xdebug.profiler_output_dir = "D:\JavaEE\container\xampp\1.8.3\tmp" xdebug.profiler_output_name = "cachegrind.out.%t-%s" ;启用远程调试 xdebug.remote_enable = 1 ;调试客户端IP地址或者主机名 xdebug.remote_host = "gmem.cc" ;端口和Eclipse PDT保持一致 xdebug.remote_port = 9000 xdebug.remote_handler = "dbgp" xdebug.trace_output_dir = "D:\JavaEE\container\xampp\1.8.3\tmp" |
Eclipse配置
Windows- Preferences - PHP - PHP Servers,添加服务器,注意Base URL和xdebug的…
13 years ago
0
浅析ExtJS新特性
ExtJS 6新特性
ExtJS与Sencha Touch的合并
ExtJS 6最重要的变化是,不再区分移动、桌面平台,所有设备上的应用程序都使用一个框架来开发。为了实现优化的用户体验,你仅仅需要编写少量的代码。
ExtJS与Sencha Touch的合并其实经历了很长的过程,在ExtJS 5中,框架的核心就被整理到core包中,便于两者的公用,ExtJS的可视化组件部分仍然留在Ext这个包中。现在,可视化组件部分被合并到一起,但是为了区分经典ExtJS、Touch…
阅读全文
13 years ago
0
使用log4jdbc记录SQL语句的执行情况
在进行数据库开发时,我们经常需要监测SQL语句的执行情况,一般的手工编码记录、Hibernate日志记录,有如下的缺点:
- 人工记录太麻烦,需要写很多日志记录语句
- 无法获取PreparedStatement的传入参数,只能显示为"?"
13 years ago
0
CXF带SSL支持的客户端示例
WebService接口定义
基于JAX-WS定义的接口:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
@WebService public interface DataTransService { @WebMethod ( operationName = "sendXML" ) @WebResult ( name = "response" ) String sendXML( @WebParam ( name = "userName" ) String userName, @WebParam ( name = "password" ) String password, @WebParam ( name = "msg" ) String msg ); } |
SSL客户端示例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
public void send(String username,String password,String xml) { String address = "https://127.0.0.1:5051/dataTransService"; JaxWsProxyFactoryBean proxyFactory = new JaxWsProxyFactoryBean(); proxyFactory.setServiceClass( DataTransService.class ); proxyFactory.setAddress( address ); DataTransService service = (DataTransService) proxyFactory.create(); org.apache.cxf.endpoint.Client client = ClientProxy.getClient( service ); HTTPConduit httpConduit = (HTTPConduit) client.getConduit(); TLSClientParameters tlsParams = initTLSClientParameters(); httpConduit.setTlsClientParameters( tlsParams ); service.sendXML( username, password,xml); } private TLSClientParameters initTLSClientParameters() throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException, FileNotFoundException, UnrecoverableKeyException { TLSClientParameters tlsParams = new TLSClientParameters(); tlsParams.setDisableCNCheck( true ); CanaryConfig cfg = getCanaryConfig(); { KeyStore trustKeyStore = KeyStore.getInstance( cfg.getString( "https.trustManagers.keyStore.type" ) ); String trustKeyStorePassword = cfg.getString( "https.trustManagers.keyStore.password" ); String url = cfg.getString( "https.trustManagers.keyStore.url" ); File trustKeyStoreFile = CanaryHelper.urlToFile( url ); trustKeyStore.load( new FileInputStream( trustKeyStoreFile ), trustKeyStorePassword.toCharArray() ); TrustManagerFactory trustFactory = TrustManagerFactory.getInstance( TrustManagerFactory.getDefaultAlgorithm() ); trustFactory.init( trustKeyStore ); TrustManager[] tm = trustFactory.getTrustManagers(); tlsParams.setTrustManagers( tm ); } { KeyStore priKeyStore = KeyStore.getInstance( cfg.getString( "https.keyManagers.keyStore.type" ) ); String priKeyStorePassword = cfg.getString( "https.keyManagers.keyStore.password" ); String url = cfg.getString( "https.keyManagers.keyStore.url" ); File priKeyStoreFile = CanaryHelper.urlToFile( url ); priKeyStore.load( new FileInputStream( priKeyStoreFile ), priKeyStorePassword.toCharArray() ); KeyManagerFactory keyFactory = KeyManagerFactory.getInstance( KeyManagerFactory.getDefaultAlgorithm() ); keyFactory.init( priKeyStore, cfg.getString( "https.keyManagers.keyPassword" ).toCharArray() ); KeyManager[] km = keyFactory.getKeyManagers(); tlsParams.setKeyManagers( km ); } { FiltersType filter = new FiltersType(); filter.getInclude().add( ".*_EXPORT_.*" ); filter.getInclude().add( ".*_EXPORT1024_.*" ); filter.getInclude().add( ".*_WITH_DES_.*" ); filter.getInclude().add( ".*_WITH_NULL_.*" ); filter.getExclude().add( ".*_DH_anon_.*" ); tlsParams.setCipherSuitesFilter( filter ); } return tlsParams; } |
13 years ago
0