binarywang / weixin-java-mp-demo

基于Spring Boot 和 WxJava 实现的微信公众号Java后端Demo,支持多公众号
1.93k stars 976 forks source link

为什么运行springboot demo时,提示404 #4

Closed fishinhouse closed 7 years ago

fishinhouse commented 7 years ago

输出的日志信息: o.s.w.s.m.m.a.HttpEntityMethodProcessor : Written [{timestamp=Fri Mar 03 04:27:07 CST 2017, status=404, error=Not Found, message=No message available, path=/wechat/portal}] as "application/json;charset=UTF-8" using [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@53605dd] o.s.web.servlet.DispatcherServlet : Null ModelAndView returned to DispatcherServlet with name 'dispatcherServlet': assuming HandlerAdapter completed request handling o.s.web.servlet.DispatcherServlet : Successfully completed request

Controller代码:

@RestController
@RequestMapping("/wechat/portal")
public class WechatController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
private WxMpService wxService;

@Autowired
private WxMpMessageRouter router;

@ResponseBody
@RequestMapping(method=RequestMethod.GET,produces = "text/plain;charset=utf-8")
public String authGet(
        @RequestParam(name = "signature",
                required = false) String signature,
        @RequestParam(name = "timestamp",
                required = false) String timestamp,
        @RequestParam(name = "nonce", required = false) String nonce,
        @RequestParam(name = "echostr", required = false) String echostr) {

    this.logger.info("\n接收到来自微信服务器的认证消息:[{}, {}, {}, {}]", signature,
        timestamp, nonce, echostr);

    if (StringUtils.isAnyBlank(signature, timestamp, nonce, echostr)) {
        throw new IllegalArgumentException("请求参数非法,请核实!");
    }

    if (this.wxService.checkSignature(timestamp, nonce, signature)) {
        return echostr;
    }

    return "非法请求";
}
binarywang commented 7 years ago

运行就报404?不可能吧,只能是你访问了某个错误的地址才导致的吧,请正确描述下你的操作过程吧

fishinhouse commented 7 years ago

pom.xml内容: ` ....

4.0.0
<groupId>com.tbms2weixin</groupId>
<artifactId>tbms2weixin</artifactId>
<version>0.0.1-SNAPSHOT</version>

<name>tbms2weixin</name>
<description>tbms2weixin</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.8.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <weixin-java-mp.version>2.5.0</weixin-java-mp.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.github.binarywang/weixin-java-common -->
    <dependency>
        <groupId>com.github.binarywang</groupId>
        <artifactId>weixin-java-common</artifactId>
        <version>${weixin-java-mp.version}</version>
    </dependency>
    <!-- 公众号(订阅号、服务号) -->
    <dependency>
      <groupId>com.github.binarywang</groupId>
      <artifactId>weixin-java-mp</artifactId>
      <version>${weixin-java-mp.version}</version>
    </dependency>
    <!-- 企业号 -->
    <dependency>
      <groupId>com.github.binarywang</groupId>
      <artifactId>weixin-java-cp</artifactId>
      <version>${weixin-java-mp.version}</version>
    </dependency>
    <!-- 基于内存的微信配置 -->
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.0</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.16.14</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-jdbc -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.zaxxer/HikariCP -->
    <dependency>
        <groupId>com.zaxxer</groupId>
        <artifactId>HikariCP</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        </dependency>
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>1.3.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
    <dependency>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-core</artifactId>
        <version>1.3.2</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <groups>com.testwithspring.starter.springboot.UnitTest</groups>
            </configuration>
        </plugin>
    </plugins>
</build>

... `

URL http://127.0.0.1:9090/wechat/portal

页面显示: · Url:null Error:Not Found Message:No message available Exception:null Path:/wechat/portal Status:404 Timestamp:Fri Mar 03 14:05:52 CST 2017 ·

fishinhouse commented 7 years ago

网上也有类似404问题: http://www.imooc.com/qadetail/150764

binarywang commented 7 years ago

从你发出来的内容看不出来什么。首先你没理解404的含义,是指没找到对应的请求路径,你先跑下本demo后,试图理解后,再看看你自己的程序到底哪儿出了问题。

fishinhouse commented 7 years ago

问题找到了,自己添加的Controller和启动自动加载的一些组件目录都要在“com.github.binarywang.demo.wechat”这个包下面,不然可以正常启动,调用时会出现404问题。