http://www.hbstbc.org/weixin/coreServlet
访问路径

解决方案 »

  1.   

    http://www.hbstbc.org/weixin   你的这个路径能访问不?若不能,就是weixin不是工程的路径。选中项目Alt+enter, 输入web。点击查看context-root.将这个值替换weixin.   如能访问。配置的ServletClass找不到,看看名字是否一样。
      

  2.   

    没看出哪边有问题,
     顺便把org.liufeng.course.servlet.CoreServlet  这个servlet也贴出来看看
    对了,后台还报错吗/
      

  3.   

    class的输出路径是在build文件夹,这是用Eclipse开发的。CoreServlet代码
    package org.liufeng.course.servlet;import java.io.IOException;
    import java.io.PrintWriter;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 org.liufeng.course.service.CoreService;
    import org.liufeng.course.util.SignUtil.checkSignature.SignUtil;/**
     * Servlet implementation class CoreServlet
     */
    @WebServlet("/CoreServlet")
    public class CoreServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;    /**
         * Default constructor. 
         */
        public CoreServlet() {
            // TODO Auto-generated constructor stub
        } /**
     *  确认请求来自微信服务器
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
     // my  
            // 微信加密签名  
            String signature = request.getParameter("signature");  
            // 时间戮  
            String timestamp = request.getParameter("timestamp");  
            // 随机数  
            String nonce = request.getParameter("nonce");  
            // 随机字符串  
            String echostr = request.getParameter("echostr");   
            PrintWriter out = response.getWriter();  
            // 通过检验 signature 对请求进行校验,若校验成功则原样返回 echostr,表示接入成功,否则接入失败  
           if(SignUtil.checkSignature(signature, timestamp, nonce)){  
               out.print(echostr);  
           }  
           out.close();  
           out = null;      
    } /**
     * 处理微信服务器发来的消息  
     * 从微信公众平台接口消息指南中可以了解到,当用户向公众帐号发消息时,微信服务器会将消息通过POST方式提交给我们
     * 在接口配置信息中填写的URL,而我们就需要在URL所指向的请求处理类CoreServlet的doPost方法中接收消息、处理消息
     * 和响应消息。
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    // 将请求、响应的编码均设置为UTF-8(防止中文乱码) 
    //微信服务器POST消息时用的是UTF-8编码,在接收时也要用同样的编码,否则中文会乱码;
            request.setCharacterEncoding("UTF-8");  
            response.setCharacterEncoding("UTF-8");  

         // 调用核心业务类接收消息、处理消息  
            String respMessage = CoreService.processRequest(request);
            
            // 响应消息  
            //调用response.getWriter().write()方法将消息的处理结果返回给用户
            PrintWriter out = response.getWriter();  
            out.print(respMessage);  
            out.close();  
    }}
    l