上传的war包导入到后台服务器,报空指针,500错误,不明白signatrue的数值从微信服务器获得,为什么还报错误。求解

微信公众号接入异常

,public class SignUtil {
//与开发者服务器的 token保持一致
private static final String token="weixin";
public static boolean checkSignature(String signature,String timestamp,String nonce) {
boolean flag=false;
//排序
String content=sort(token, timestamp, nonce);
//加密
String mySignature=sha1(content);
//校验签名
if(mySignature!=null&&mySignature!=""&&mySignature.equals(signature)) {
System.out.println("校验签名成功");
flag=true;
}else {
System.out.println("校验签名失败");
flag=false;
}
return flag;

//排序方法
public static String sort(String token,String timestamp,String nonce) {
String[] strArray= {token,timestamp,nonce};
Arrays.sort(strArray);
//将排序的字符串数组转换成字符串
StringBuilder sb=new StringBuilder();
for(String s:strArray) {
sb.append(s);
}
return sb.toString();

}
//sha1加密
public static String sha1(String s) {
try {
MessageDigest digest=MessageDigest.getInstance("SHA-1");
digest.update(s.getBytes());
byte messageDigest[]=digest.digest();
//create Hex String
StringBuffer hexString=new StringBuffer();
//字节数组转换为十六进制的数
for(int i=0;i<messageDigest.length;i++) {
String shaHex=Integer.toHexString(messageDigest[i]&0xFF);
if(shaHex.length()<2) {
hexString.append(0);
}
hexString.append(shaHex);
 
}
return hexString.toString();
}catch (NoSuchAlgorithmException e) {
// TODO: handle exception
e.printStackTrace();
}
return "";
}
<xml>配置,<servlet>
    <servlet-name>WeiXinServlet</servlet-name>
    <servlet-class>com.huaishi.servlet.WeiXinServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>WeiXinServlet</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>WeiXinServlet</servlet-name>
    <url-pattern>/WeiXinServlet</url-pattern>
  </servlet-mapping>

</web-app>

,浏览器错误:

微信公众号接入异常

分类:

技术点:

相关文章: