分布式网上商城项目-solr搜索功能错误

1、RuntimeException错误

  1 java.lang.RuntimeException: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.thyonline.taotao.search.mapper.SearchItemMapper.SearchItemList
  2
  3 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.thyonline.taotao.search.mapper.SearchItemMapper.SearchItemList
  4
  5          at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:189)
  6
  7          at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:43)
  8
  9          at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:58)
 10
 11          at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:51)
 12
 13          at com.sun.proxy.$Proxy34.SearchItemList(Unknown Source)
 14
 15          at cn.thyonline.taotao.search.service.impl.SearchItemServiceImpl.importAllItems(SearchItemServiceImpl.java:24)
 16
 17          at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 18
 19          at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 20
 21          at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 22
 23          at java.base/java.lang.reflect.Method.invoke(Method.java:564)
 24
 25          at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
 26
 27          at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
 28
 29          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 30
 31          at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
 32
 33          at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
 34
 35          at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
 36
 37          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 38
 39          at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
 40
 41          at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
 42
 43          at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
 44
 45          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 46
 47          at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
 48
 49          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 50
 51          at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
 52
 53          at com.sun.proxy.$Proxy35.importAllItems(Unknown Source)
 54
 55          at com.alibaba.dubbo.common.bytecode.Wrapper0.invokeMethod(Wrapper0.java)
 56
 57          at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46)
 58
 59          at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72)
 60
 61          at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53)
 62
 63          at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:64)
 64
 65          at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
 66
 67          at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75)
 68
 69          at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
 70
 71          at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42)
 72
 73          at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
 74
 75          at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78)
 76
 77          at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
 78
 79          at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:60)
 80
 81          at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
 82
 83          at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:112)
 84
 85          at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
 86
 87          at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38)
 88
 89          at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
 90
 91          at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:38)
 92
 93          at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
 94
 95          at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:108)
 96
 97          at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84)
 98
 99          at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170)
100
101          at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52)
102
103          at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82)
104
105          at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
106
107          at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
108
109          at java.base/java.lang.Thread.run(Thread.java:844)

但是查看target文件发现查看报错信息可以看见是mapper绑定无效

Mapper文件已经放置在一个文件夹,再检查两个文件发现是select语句的ID没有对应上

2、请求超时错误

1 com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method importAllItems in the service cn.thyonline.taotao.search.service.SearchItemService. Tried 3 times of the providers [192.168.199.139:20882] (1/1) from the registry 192.168.25.128:2181 on the consumer 192.168.199.139 using the dubbo version 2.5.3. Last error is: Invoke remote method timeout. method: importAllItems, provider: dubbo://192.168.199.139:20882/cn.thyonline.taotao.search.service.SearchItemService?anyhost=true&application=taotao-manager-web&check=false&dubbo=2.5.3&interface=cn.thyonline.taotao.search.service.SearchItemService&methods=importAllItems&pid=3208&revision=0.0.1-SNAPSHOT&side=consumer&timestamp=1528390391677, cause: Waiting server-side response timeout. start time: 2018-06-08 00:53:16.967, end time: 2018-06-08 00:53:17.968, client elapsed: 0 ms, server elapsed: 1001 ms, timeout: 1000 ms, request: Request [id=2, version=2.0.0, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=importAllItems, parameterTypes=[], arguments=[], attachments={path=cn.thyonline.taotao.search.service.SearchItemService, interface=cn.thyonline.taotao.search.service.SearchItemService, version=0.0.0}]], channel: /192.168.199.139:11038 -> /192.168.199.139:20882

Web层请求超时

但是检查search层在查询数据库前后打印

1 System.out.println("开始查询商品!");
2
3 List<SearchItem> items = mapper.searchItemList();
4
5 //2、创建solrServer对象,将商品信息通过SolrInputDocument存入
6
7 System.out.println("查询到的商品数量:"+items.size());

并且打印出来了数据说明mapper映射文件也没有问题。重新开始测试,发现后台两条数据都打印了出来,证明请求从controller层传递到了service层,dubbo连接没有问题。

那证明一件事情就是这次连接因为要连接solr导致耗时很长,使得超出了dubbo的默认连接时间从而失败,修改dubbo在service层和controller层的配置:

 1 <!-- 名字不能够重复,和随便,用于计算依赖关系,服务调用的情况 -->
 2
 3     <dubbo:application name="taotao-search" />
 4
 5     <!-- 使用zookeeper注册协议  -->
 6
 7     <dubbo:registry protocol="zookeeper" address="192.168.25.128:2181" />
 8
 9     <!-- 使用dubbo协议,暴露服务的端口 -->
10
11     <dubbo:protocol name="dubbo" port="20882" />
12
13     <!-- 发布服务 -->
14
15     <dubbo:service interface="cn.thyonline.taotao.search.service.SearchItemService" ref="searchItemServiceImpl"  timeout="300000"/>

查看solr数据修改连接超时为5分钟,再次测试,连接成功

Solr数据导入成功

原文地址:https://www.cnblogs.com/thyHome/p/9153671.html

时间: 2024-08-01 05:32:48

分布式网上商城项目-solr搜索功能错误的相关文章

分布式网上商城项目-项目查询功能错误

1.Jdbc内存泄露问题 1 严重: The web application [] registered the JDBC driver [com.alibaba.druid.proxy.DruidDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 2 3

分布式网上商城项目-图片上传及删除功能错误

1.自己创建的jar包导入本地仓库引用后出现错误 1 [ERROR] [ERROR] Some problems were encountered while processing the POMs: 2 3 [WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: org.apache.commons:commons-io:jar -> duplicate declarati

分布式网上商城项目-dubbo搭建与初次使用错误

1.Spring-service启动失败 1 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener 2 3 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tes

【SSH网上商城项目实战27】域名空间的申请和项目的部署及发布

前面陆陆续续的完成了网上商城的一些基本功能,虽然还有很多地方有待完善,但是不影响项目的部署和发布,我们可以先来玩一把,这一节主要介绍下域名空间的申请以及项目的部署和发布流程. 1. 域名空间的申请 作为一个伟大的屌丝,肯定没钱买域名空间,很自然的想到去申请个免费的,现在免费的域名空间也很多,我在福佳jsp技术网上申请了一个试用期是15天的,大家也可以去申请个玩玩,反正作为学习,这已经足够了,当然,如果要长期的肯定要付费的.注册过程我截几个图,如下: 然后下一步,最后开通如下: 建议把上面这些信息

“商城项目”自定义搜索框

1.要实现搜索的效果图如下:<功能:当输入关键字点击搜索按钮的时候在list上显示出来,点击商品进入商品详情页即可> 2>自定义搜索框,在导航栏视图上添加搜索视图,代码如下: 3>搜索结果的tableView,定义一个数组将解析数据的内容存取到数组中,将数组的个数加一,最后多得一行作为清除历史记录的一行 4>重要的一点就是:点击清除历史记录的时候,将保存到NSuserdefault的内容remove掉 5>最后将数据解析的内容传过去就行了,自定义搜索框就完成了. 注意点

【SSH网上商城项目实战21】从Demo中看易宝支付的流程

这一节我们先写一个简单点的Demo来测试易宝支付的流程,熟悉这个流程后,再做实际的开发,因为是一个Demo,所以我没有考虑一些设计模式的东西,就是直接实现支付功能.实现支付功能需要易宝给我们提供的API.那么问题来了,使用第三方支付平台最主要的一件事就是获取该平台的API,我们首先得获取他们的API以及开发文档,然后才可以做进一步的开发. 1. 获取易宝的API 获取API的第一步,要在易宝上注册一个账号,这个账号是商家的账号,后面买家付款后,会将钱款存入该账号中,然后商家自己提取到银行卡,易宝

【SSH网上商城项目实战16】Hibernate的二级缓存处理首页的热门显示

网上商城首页都有热门商品,那么这些商品的点击率是很高的,当用户点击某个热门商品后需要进入商品的详细信息页面,就像淘宝里面那样.那么每次点击都要去后台查询一下该商品的详细信息,就会发送相应的sql语句,每次刷新一下详细页面也会发sql语句,这样的话,性能肯定会受到很大的影响.那么使用Hibernate的二级缓存就可以解决这个问题. 有些人可能会想,我们可以使用重定向,这样的话,在用户第一次访问的时候把信息查出来放到session中,以后每次用户刷新就可以去session中拿了,这样就不用去数据库中

新巴巴运动网上商城 项目 快速搭建 教程 The new babar sports online mall project quickly builds a tutorial

新巴巴运动网上商城 项目 快速搭建 教程 The new babar sports online mall project quickly builds a tutorial 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:[email protected] E-mail: 313134555 @qq.com 搭建后台网站.启动 console 服务器 ,它的http 端口 是 8150 Build a background site.Start the console s

【SSH网上商城项目实战25】使用java email给用户发送邮件

当用户购买完商品后,我们应该向用户发送一封邮件,告诉他订单已生成之类的信息,邮箱地址是从用户的基本信息中获取,好了,首先我们来看一下Java中发送邮件的方法. 1. java中发送email的方法     在完善这个项目之前,先来回顾一下java中是如何发送邮件的,首先肯定需要发送邮件的jar包:mail.jar,导入到lib目录下,好了,下面我们先写一个普通的java程序来回顾一下java email的知识点: public class SendEmailDemo { public stati