http://blog.csdn.net/yerenyuan_pku/article/details/72902073

上文我们把商品数据导入到索引库中的Service层代码编写完了,本文我们将再来把商品数据导入到索引库中的表现层代码编写完,从而实现从数据库中导入商品数据到索引库的功能。 
我们是要在表现层中调用搜索服务的导入数据功能的,但应在哪个表现层调用呢?很显然应该在后台管理系统——taotao-manager-web工程中调用搜索服务的导入数据功能。既然服务已经发布过了,那么我们现在只须引用服务即可,在taotao-manager-web工程中的springmvc.xml文件添加如下配置。

<dubbo:reference interface="com.taotao.search.service.SearchItemService" id="searchItemService" />


我们知道,在默认的后台管理页面当中是没有导入数据到索引库页面的,这就需要我们自己创建这么一个管理页面。不过首先我们需要在后台首页添加一个导航,如下图所示,当点击”导入索引库”的时候会去找index-manager.jsp这个页面。 

接着我们便去新建index-manager.jsp这么一个页面,如下图所示。 

为方便大家复制,现将index-manager.jsp页面的内容贴出。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<div> <a class="easyui-linkbutton" onclick="importItems()">一键导入商品数据到索引库</a> </div> <script type="text/javascript"> function importItems() { $.post("/index/import",null,function(data){ if (data.status == 200) { $.messager.alert('提示','商品数据导入完成!'); } else { $.messager.alert('提示','商品数据导入失败!'); } }); } </script>

写好了页面,下面我们便来写一下Controller,由于taotao-manager-web工程依赖taotao-search-interface,因此需要添加对该工程的依赖,如下图所示。 

接下来我们在taotao-manager-web工程中新建一个IndexManagerController,专门处理导入商品数据到索引库,如下图所示。 

为方便大家复制,现将IndexManagerController类的代码贴出。

/*** 索引库维护Controller* <p>Title: IndexManagerController</p>* <p>Description: </p>* <p>Company: www.itcast.cn</p> * @version 1.0*/
@Controller
public class IndexManagerController { @Autowired private SearchItemService searchItemService; @RequestMapping("/index/import") @ResponseBody public TaotaoResult indexImport() throws Exception { TaotaoResult taotaoResult = searchItemService.importAllItemToIndex(); return taotaoResult; } }

这样,我们的代码终于写完了,接下来我们要做的便是启动各个工程了。由于在taotao-common工程中新添加了一个pojo,因此taotao-common工程需要重新打包,打包方式就不说了,我都说烂了。还有taotao-search聚合工程是个新工程,也需要打包到本地maven仓库。 
接着我们来启动各个工程,要注意的是在启动工程前,我们千万不要忘记打开zookeeper服务器!先启动taotao-manager工程,接着启动taotao-content工程,接着启动taotao-search工程,由于taotao-search工程还没有配置tomcat插件启动,因此需要先配置一下,方法是在工程上右键→Run As→Maven build…,会看到如下图所示的对话框,在Goals一栏输入”clean tomcat7:run”。然后点击”Apply”,之后点击”Run”启动该工程。 

启动完taotao-search工程之后,我们再启动taotao-manager-web工程,启动完之后,我们看下后台管理页面,可以看到有导入索引库页面,如下图所示。 

我们点击上图的”一键导入商品数据到索引库”,会看到如下所示错误信息。

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.taotao.search.mapper.ItemMapper.getItemList at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:189) at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:43) at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:58) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:51) at com.sun.proxy.$Proxy31.getItemList(Unknown Source) at com.taotao.search.service.impl.SearchItemServiceImpl.importAllItemToIndex(SearchItemServiceImpl.java:36) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) at com.sun.proxy.$Proxy33.importAllItemToIndex(Unknown Source) at com.alibaba.dubbo.common.bytecode.Wrapper0.invokeMethod(Wrapper0.java) at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46) at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72) at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53) at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:64) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78) at com.alibaba

转载于:https://www.cnblogs.com/telwanggs/p/6962373.html

(转)淘淘商城系列——导入商品数据到索引库相关推荐

  1. (转)淘淘商城系列——导入商品数据到索引库——Service层

    http://blog.csdn.net/yerenyuan_pku/article/details/72894187 通过上文的学习,我相信大家已经学会了如何使用Solrj来操作索引库.本文我们将把 ...

  2. (转)淘淘商城系列——导入商品数据到索引库——dao层

    http://blog.csdn.net/yerenyuan_pku/article/details/72889058 我们先来看看我们要导入数据的sql语句并且查看查询结果.  从上图可知我们需要从 ...

  3. 淘淘商城第50讲——导入商品数据到索引库时,报错:org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException

    问题描述 昨天碰到了一个问题,真的是把快我搞死了,导致我代码写下去的勇气都没有了,最后大爷我干脆不写了,我躺着睡觉还不行吗

  4. (转)淘淘商城系列——使用solrj来测试索引库

    http://blog.csdn.net/yerenyuan_pku/article/details/72892280 我们使用solrj来操作索引库,一般习惯先建一个单元测试类测试下增删改查方法是否 ...

  5. 导入图片后截取_微服务项目第36天:导入数据到索引库

    今天是刘小爱自学Java的第166天. 感谢你的观看,谢谢你. 学习计划安排,导入需要的数据到索引库: 对于all字段的拼接. spu中附带的skus集合. sku中对应的price. specs规格 ...

  6. 【微服务】166:导入数据到索引库

    目录 一.all数据 二.skus和price数据 三.specs规格参数 最后 今天是刘小爱自学Java的第166天. 感谢你的观看,谢谢你. 学习计划安排,导入需要的数据到索引库: 对于all字段 ...

  7. 【微服务】165:导入数据到索引库

    今天是刘小爱自学Java的第166天. 感谢你的观看,谢谢你. 学习计划安排,导入需要的数据到索引库: 对于all字段的拼接. spu中附带的skus集合. sku中对应的price. specs规格 ...

  8. Python自动登陆淘宝并爬取商品数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 基本开发环境 Python 3.6 Pycharm import time from sel ...

  9. 爬虫京东数据作为索引库,模拟分页搜索

    1.创建索引库index_one,并指定字段类型和使用IK分词器 /*** 创建索引(索引库)*** kibana返回结果*** PUT /test** {* "acknowledged&q ...

最新文章

  1. 差点被人类消灭的疾病,科学家说是苏联让它重新肆虐全球?
  2. 微软为什么从 C/C++ 转向了 Rust?
  3. php生成pdf乱码_php+tcpdf生成pdf: 中文乱码
  4. 如何开启mysql5.5的客户端服务 命令行打开方法
  5. 投资100亿美元,谷歌计划在2020年向美国办事处和数据中心
  6. linux非守护线程一直不释放,Linux pthread 和 java thread 的是 / 非守护线程的行为
  7. CSS 伪类选择器:如何使用 CSS3 伪类
  8. 恒强制版系统980_速来围观 | 恒强制版小图高级功能讲解
  9. 从分类到选型,一文了解 SITOP 电源
  10. nginx反向代理解封电信80端口
  11. 【雅思大作文考官范文】——第十五篇:'high salaries' essay
  12. 入行这么久? 真正理解了缓存吗
  13. EM30719 i2c不能正常读
  14. springMVC 一些文章
  15. python兔子_python 实现兔子生兔子示例
  16. 焦虑症是精神病吗?缓解焦虑症的方法有哪些
  17. IT行业的人越来越多,工资为啥却不降反升?
  18. 从零开始学C++之标准库类型(一):string 类简介和例程
  19. Android面试之Activity生命周期详解
  20. 【5G基础知识】5G网络的架构分析

热门文章

  1. Linux 文件相关的常用命令
  2. (40)不确定性约束
  3. (39)System Verilog线程停止(disable)
  4. (14)FPGA触发器与寄存器区别
  5. FPGA时序约束设计经验总结
  6. 蓝桥杯小朋友排队java_1215. 小朋友排队
  7. html5多颜色灯笼旋转,HTML5 Canvas 漂亮的斑马条纹灯笼
  8. 1011.log4cplus移植记录
  9. STM32通用定时器输出PWM
  10. C语言在STM32中的内存分配