import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "LbAccessTokenServlet")
public class LbAccessTokenServlet extends HttpServlet {
public void init() throws ServletException {
new Thread(new LbTokenThread()).start(); //启动进程
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
---------------------
package com.jeecg.lb;
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.request.OapiGettokenRequest;
import com.dingtalk.api.response.OapiGettokenResponse;
import com.taobao.api.ApiException;
public class LbTokenThread implements Runnable {
private static String APPKEY = "*******"; // 小程序APPKEY
private static String APPSECRET = "*******"; // 小程序APPSECRET
public static String accessToken = null;
public void run(){
while (true){
try{
accessToken = this.getAccessToken();
if(null!=accessToken){
System.out.println("Lb-token:"+accessToken);
Thread.sleep(7000 * 1000); //获取到access_token 休眠7000秒
}else{
Thread.sleep(1000*3); //获取的access_token为空 休眠3秒
}
}catch(Exception e){
System.out.println("发生异常:"+e.getMessage());
e.printStackTrace();
try{
Thread.sleep(1000*10); //发生异常休眠1秒
}catch (Exception e1){
}
}
}
}
/**
* 获取access_token
* @return
*/
public String getAccessToken(){
DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
OapiGettokenRequest request = new OapiGettokenRequest();
request.setAppkey(APPKEY);
request.setAppsecret(APPSECRET);
request.setHttpMethod("GET");
String accessToken = null;
try {
OapiGettokenResponse response = client.execute(request);
accessToken = response.getAccessToken();
System.out.println(response);
} catch (ApiException e) {
e.printStackTrace();
}
return accessToken;
}
}
---------web.xml----------
<servlet>
<servlet-name>initLbAccessTokenServlet</servlet-name>
<servlet-class>
com.jeecg.lb.LbAccessTokenServlet
</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
----------------------调用方法
LbTokenThread.accessToken