请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

前段app推荐列表获取不到商户信息

前段app推荐列表获取不到商户信息,我单元测试过,可以成功返回参数

还有通过http://127.0.0.1:8081/upload/ad/imag1.png可以获取到图片吗?,广告列表获取不到图片

下面是ApiController

// 首页 —— 推荐列表(猜你喜欢)
@RequestMapping(value = "/homelist/{city}/{page.currentPage}", method = RequestMethod.GET)
public BusinessListDto homeList(BusinessDto businessDto){
    businessDto.getPage().setPageNumber(businessHomeNumber);
    return businessService.searchByPageForApi(businessDto);
}
@RequestMapping(value = "/submitComment", method = RequestMethod.POST)
public Map<String,Object> submitComment(){
    Map<String,Object> result = new HashMap<String,Object>();
    result.put("erron",0);
    result.put("img","ok");
    return result;
}

// 详情页 - 商户信息
@RequestMapping(value = "/detail/info/{id}",method = RequestMethod.GET)
public BusinessDto businessDetail(@PathVariable("id") Long id){
   return businessService.getById(id);
}
//三个参数查询
@RequestMapping(value = "/search/{page.currentPage}/{city}/{category}/{keyword}",method = RequestMethod.GET)
public BusinessListDto businessSearchThree(BusinessDto businessDto){
    businessDto.getPage().setPageNumber(businessSearchNumber);
    return businessService.searchByPageForApi(businessDto);
}
//两个参数查询
@RequestMapping(value = "/search/{page.currentPage}/{city}/{category}",method = RequestMethod.GET)
public BusinessListDto businessSearchTwo(BusinessDto businessDto){
    businessDto.getPage().setPageNumber(businessSearchNumber);
    return businessService.searchByPageForApi(businessDto);
}


正在回答

9回答

1、推荐列表:学会debug,在推荐列表的接口打断点,一步一步跟下去。有几个可能:虽然单元测试没问题,但从前端请求,是带查询参数的,比如:城市;另一个可能,接口返回了数据,前端没有正确展示,是不是前端的server.js里地址没有修改。

2、图片:http://127.0.0.1:8081/upload/ad/imag1.png,确定一个事:

你启动的、端口号为8081的那个Tomcat的webapps下,有/upload/ad这两层文件夹,文件夹下面有imag1.png这张图片。

0 回复 有任何疑惑可以回复我~
  • 提问者 Z266 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2017-06-28 21:14:45
  • 提问者 Z266 #2
    老师,刚才debug了一下,前台传过来的city是乱码的,如何修改?
    回复 有任何疑惑可以回复我~ 2017-06-28 22:08:10
源生活 2017-06-28 23:43:22

没事,能解决问题才好,主要我这边用IDEA的时候,是用jetty启的,你这种情况我暂时没时间去试,但可以肯定的是,用IDEA启动tomcat和手动单独启动tomcat是不一样的,不是一个效果,这是问题的根本。

你先看看:

http://201606052202.iteye.com/blog/2338730


是不是和你的情况一样,看看能不能解决。晚安!

0 回复 有任何疑惑可以回复我~
  • 提问者 Z266 #1
    好的,晚安,老师
    回复 有任何疑惑可以回复我~ 2017-06-28 23:46:53
源生活 2017-06-28 23:23:48

刚刚那个格式不规整,重来:

如果你没加自定义拦截器,不是被拦截了。

那你在IDEA里启动后,【comment】工程不是出现在了tomcat下吗?那这个时候【comment】和【upload】在同一级目录下吗?

如果不是,那已经有问题了。

如果是在同一级,继续:

你复制一张图片,到【comment】工程下,就放根目录下,怎么访问你应该知道吧?

http://127.0.0.1:8081/comment/图片名

如果能访问到,那就先用这种方式继续学习后面的内容,我需要想想在这种情况下还有什么可能会造成

http://127.0.0.1:8081/comment/ 能访问

http://127.0.0.1:8081/upload/ 不能访问

如果http://127.0.0.1:8081/comment/图片名,也不能访问,那IDEA所表现出来的,和你想象的可能不一样。 试试吧,然后告诉我结果。

0 回复 有任何疑惑可以回复我~
  • 提问者 Z266 #1
    老师:
    (1)放到项目根目录下是可以访问到的
    (2)在放到根目录之前,我单独启动了tomcat,可以访问到图片,然后启动idea可以访问到之前单独启动tomcat时访问过的那个图片,其他的访问不到
    回复 有任何疑惑可以回复我~ 2017-06-28 23:29:31
  • 源生活 回复 提问者 Z266 #2
    很明显是IDEA在搞鬼,你参考一下这个:
    http://201606052202.iteye.com/blog/2338730
    回复 有任何疑惑可以回复我~ 2017-06-28 23:34:39
  • 提问者 Z266 #3
    (1)comment和upload是在同一目录下,但是不可以访问upload下的图片。
    (2)我通过tomcat下bin目录下的startup.bat启动,可以访问到upload下的图片,假如说upload下有从一到十号十个图片,单独启动tomcat时访问1号图片成功。然后通过idea启动,也就只能访问到1号图片,其他2-10号访问不到
    回复 有任何疑惑可以回复我~ 2017-06-28 23:34:45
提问者 Z266 2017-06-28 23:05:13

老师,首先非常感谢你的耐心解答这么长时间,我好像记得视频中讲过配置URIEncoding="UTF-8"视频中提到过,我当时没改给放过去了。非常谢谢


再说tomcat,我查了一下有三种配置方式,短时间内我熟悉不了。

但是idea中没有自带的tomcat,而且我电脑中只有一个tomcat。再者当我将apache-tomcat-7.0.73t中comment删除,再在idea重新启动项目是,又会在apache-tomcat-7.0.73下自动部署一个comment项目,所以我判断就是部署在apache-tomcat-7.0.73下。

ps:我记得昨天还可以访问到,今天就不可以了,这个和图片大小有关系吗?是不是其他方面原因?

0 回复 有任何疑惑可以回复我~
  • 昨天可以,今天不可以?昨天到今天,这中间,你加自定义拦截器了?
    回复 有任何疑惑可以回复我~ 2017-06-28 23:10:16
  • 提问者 Z266 回复 源生活 #2
    没加,昨天一开始也获取不到,我发现是properties路径没配置对,改过来之后,我直接就在地址栏试了一下,可以访问到,就没留意这个问题,今天又访问不到了
    回复 有任何疑惑可以回复我~ 2017-06-28 23:15:40
  • 提问者 Z266 回复 源生活 #3
    老师,我刚才直接启动tomcat,可以获取到图片,然后通过idea启动也可以获取到图片了。。。。。
    回复 有任何疑惑可以回复我~ 2017-06-28 23:19:35
源生活 2017-06-28 22:56:39

一般工程部署在tomcat下有几种方式,最常用的是直接把工程放在webapps下,或者在server.xml里配置工程访问路径与存放路径。你如果能在【apache-tomcat-7.0.73】下找到部署了【comment】的证据,那按道理说,upload只是一个普通的资源工程,不太可能【comment】能访问,而【upload】下的静态资源不能访问。

所以,我有理由怀疑【comment】这个工程现在不在【apache-tomcat-7.0.73】下。

或者说,你知道你的【comment】现在部署在哪吗(这是关键,要找到这个web容器)?怎么证明?

0 回复 有任何疑惑可以回复我~
提问者 Z266 2017-06-28 22:38:28

idea的tomcat配置如下图https://img1.sycdn.imooc.com/szimg//5953bf5e0001e79b07310230.jpg

0 回复 有任何疑惑可以回复我~
源生活 2017-06-28 22:36:53

乱码: 在配置修改Tomcat端口号的地方,加上【URIEncoding="UTF-8"】这个属性

访问图片:看你截的图,访问路径和存放路径确实是正确的,需要确定idea里启动的是不是这个Tomcat。

0 回复 有任何疑惑可以回复我~
  • 提问者 Z266 #1
    idea中的tomcat就是那个tomcat
    回复 有任何疑惑可以回复我~ 2017-06-28 22:38:48
  • 提问者 Z266 #2
    老师乱码解决了,可以获取到商户信息了,但图片还是无法显示。
    还有非常谢谢老师的耐心解答,赞赞赞
    回复 有任何疑惑可以回复我~ 2017-06-28 22:43:12
  • 源生活 回复 提问者 Z266 #3
    这样,你知道tomcat下部署工程的几种方式吗?给我一个证据,证明你comment这个工程是部署在这个tomcat下的,因为至少你的comment是能访问的。也就是说,你怎么证明你的comment是部署在【apache-tomcat-7.0.73】下的?
    回复 有任何疑惑可以回复我~ 2017-06-28 22:46:02
提问者 Z266 2017-06-28 22:34:01

这个是给两个参数查询打断点之后,获取city的值,乱码了https://img1.sycdn.imooc.com/szimg//5953be53000184b009610332.jpg

0 回复 有任何疑惑可以回复我~
提问者 Z266 2017-06-28 22:13:04

我图片路径正确,就是访问不到,如下图

https://img1.sycdn.imooc.com/szimg//5953b9690001a03604360259.jpg

https://img1.sycdn.imooc.com/szimg//5953b96900017c6710330121.jpg


0 回复 有任何疑惑可以回复我~
  • 有imag1.png这张图片吗?前面那串数字不要了?
    回复 有任何疑惑可以回复我~ 2017-06-28 22:16:16
  • 提问者 Z266 回复 源生活 #2
    这是两张图,下边是访问路径,以及报错信息,还有前台app传过来参数乱码了,怎么解决?
    回复 有任何疑惑可以回复我~ 2017-06-28 22:24:39
  • 提问者 Z266 #3
    我访问的是第一个图片
    回复 有任何疑惑可以回复我~ 2017-06-28 22:25:24
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信