exception
javax.servlet.ServletException: Servlet execution threw an exception
com.lemon.sso.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:31)
root cause
java.lang.AbstractMethodError: org.apache.xerces.dom.DeferredElementImpl.getTextContent()Ljava/lang/String;
com.aliyuncs.regions.InternalEndpointsParser.parseEndpoints(InternalEndpointsParser.java:56)
com.aliyuncs.regions.InternalEndpointsParser.getEndpoint(InternalEndpointsParser.java:90)
com.aliyuncs.profile.DefaultProfile.getEndpoints(DefaultProfile.java:148)
com.aliyuncs.profile.DefaultProfile.addEndpoint(DefaultProfile.java:269)
com.aliyuncs.profile.DefaultProfile.addEndpoint(DefaultProfile.java:263)
com.lemon.action.Servlet_Sms.doPost(Servlet_Sms.java:47)
com.lemon.action.Servlet_Sms.doGet(Servlet_Sms.java:36)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
com.lemon.sso.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:31)
public class Servlet_Sms extends HttpServlet {
private static final long serialVersionUID = 1L;
static final String product = "Dysmsapi";
//产品域名,开发者无需替换
static final String domain = "dysmsapi.aliyuncs.com";
// TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
static final String accessKeyId = "xxxxxxxx";
static final String accessKeySecret = "xxxxxxxxxxx";
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String phoneNumbers="13236255894";
String userName="xxx";
System.setProperty("sun.net.client.defaultConnectTimeout", "5000");
System.setProperty("sun.net.client.defaultReadTimeout", "5000");
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
try {
System.out.println("##################################");
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
} catch (ClientException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
IAcsClient acsClient = new DefaultAcsClient(profile);
SendSmsRequest srequest = new SendSmsRequest();
srequest.setPhoneNumbers(phoneNumbers);
srequest.setSignName("阿里云短信测试专用"); //短信签名-可在短信控制台中找到
srequest.setTemplateCode("SMS_10000000"); //短信模板-可在短信控制台中找到
String code=String.valueOf((int)((Math.random()*9+1)*100000));
System.out.println(code);
srequest.setTemplateParam("{\"name\":\""+userName+"\", \"code\":\""+code+"\"}"); //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"
HandlerResult result=new HandlerResult();
SendSmsResponse sendSmsResponse;
try {
sendSmsResponse = acsClient.getAcsResponse(srequest);
System.out.println("调用后");
if(sendSmsResponse.getCode() != null && "OK".equals(sendSmsResponse.getCode())){
result.setCode(0);
result.setSuccess(1);
result.setMessage("发送成功!");
}else{
result.setCode(0);
result.setSuccess(0);
result.setMessage("发送失败!");
}
response.getWriter().print(new Gson().toJson(result));
} catch (ServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}