Solo  当前访客:4 登录 注册

喧哗博客-http://blog.xuahua.com

繁华过后的沉寂--技术经验分享
浏览次数: 94,390    文章总数: 91    评论总数: 3
存档:
2016 年 10 月 (3)

数据库联接池连接,失效后自动重连参数设置 有更新!

 

二种连接,

1,alibaba出品的数据库连接驱动Druid

<Resource 
         name="jdbc/game"
         factory="com.alibaba.druid.pool.DruidDataSourceFactory"
         auth="Container"
         type="javax.sql.DataSource"
         driverClassName="com.mysql.jdbc.Driver"
         url="jdbc:mysql://xxx:3306/game1?sendStringParametersAsUnicode=false"
         username="game1"
         password="game1"
         maxActive="500"
         maxWait="60000"
         initialSize="100"
         removeabandoned="true"
         removeabandonedtimeout="60"
         timeBetweenEvictionRunsMillis="60000"
         minEvictableIdleTimeMillis="300000"
         validationQuery="select 1"
         testWhileIdle="true"
         testOnReturn="false"
         testOnBorrow="false"
         logabandoned="false"
         poolPreparedStatements="true"
         maxPoolPreparedStatementPerConnectionSize="20"
         filters="stat"/>

 

2,tomcat自带的连接池 org.apache.tomcat.jdbc.pool.DataSourceFactory

 

<Resource name="jdbc/game" auth="Container"
      type="javax.sql.DataSource"
      factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
      testWhileIdle="true"
      testOnBorrow="true"
      testOnReturn="false"
      validationQuery="SELECT 1"
      validationInterval="30000"
      timeBetweenEvictionRunsMillis="30000"
      maxActive="100"
      minIdle="10"
      maxWait="10000"
      initialSize="50"
      removeAbandonedTimeout="60"
      removeAbandoned="true"
      logAbandoned="true"
      minEvictableIdleTimeMillis="30000"
      jmxEnabled="true"
      jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
      username="game1"
      password="game1"
      driverClassName="com.mysql.jdbc.Driver"
      url="jdbc:mysql://xxx:13306/gametest?sendStringParametersAsUnicode=false"/>

 

 

 

 

 

 

 

 

微信公众号,高级群发接口,如何增加外链直接让推送的图文消息点 有更新!

最近弄这个头大了。。

如何实现点击微信图文信息直接跳转至外部链接

有知道的没有?请留言!

微信接口开发系列之九群发消息上传图片 有更新!

微信接口定义如下

上传图文消息内的图片获取URL【订阅号与服务号认证后均可用】

请注意,本接口所上传的图片不占用公众号的素材库中图片数量的5000个的限制。图片仅支持jpg/png格式,大小必须在1MB以下。

接口调用请求说明

http请求方式: POST
https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN
事后证明,上传图片的接口请使用 http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=image 调用示例(使用curl命令,用FORM表单方式上传一个图片): curl -F media=@test.jpg "https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN"

参数说明

参数是否必须说明
access_token 调用接口凭证
media form-data中媒体文件标识,有filename、filelength、content-type等信息

返回说明 正常情况下的返回结果为:

{
    "url":  "http://mmbiz.qpic.cn/mmbiz/gLO17UPS6FS2xsypf378iaNhWacZ1G1UplZYWEYfwvuU6Ont96b1roYs CNFwaRrSaKTPCUdBK9DgEHicsKwWCBRQ/0"
}

其中url就是上传图片的URL,可用于后续群发中,放置到图文消息中。

错误时微信会返回错误码等信息,请根据错误码查询错误信息。

 

 

使用httpclient 上传图片代码如下:

/**
	 * 微信客服消息,上传文件接口使用
	 * @param url  微信提供的上传地址
	 * @param file 上传图片地址,此处必须是本地文件路径
	 * @param filename 对应的上传文件名
	 * @return
	 */
	public static String postfile(String url,String file,String filename){
		StringBuilder sb = new StringBuilder();
		CloseableHttpClient httpclient = HttpClientBuilder.create().build();
        HttpPost httppost = new HttpPost(url); 
        postRequestconfig(httppost);
        
        try {
        	HttpEntity entityfile = MultipartEntityBuilder.create()  
        			.addBinaryBody("file", new File(file), ContentType.DEFAULT_BINARY, file).addTextBody("filename",filename)  
        			.build();  
        	httppost.setEntity(entityfile);  
	    	HttpResponse response = httpclient.execute(httppost);
			int statusOk = response.getStatusLine().getStatusCode();
			if(logger.isInfoEnabled()){
		        	logger.info(url+"result-statusCode=>>"+statusOk);
		    }
	        if(statusOk == HttpStatus.SC_OK){
	        	HttpEntity entity = response.getEntity();
	        	BufferedInputStream instream = new BufferedInputStream(entity.getContent()); 
		        byte[] chars = new byte[2048];
		        int len=0;
		        while((len=instream.read(chars))!=-1){
		        	sb.append(new String(chars,0,len));
		        }
	        }else{
	        	logger.error(url+"result->网络异常.."+statusOk);
	        }
	        if(logger.isInfoEnabled()){
	        	logger.info(url+"result->"+sb.toString());
	        }
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	    return sb.toString();
	}

公告

喧哗博客--繁华过后的沉寂--技术经验分享^-^
Copyright (c) 2009-2019, b3log.org & hacpai.com