博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转)淘淘商城系列——导入商品数据到索引库
阅读量:6833 次
发布时间:2019-06-26

本文共 4802 字,大约阅读时间需要 16 分钟。

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

上文我们把商品数据导入到索引库中的Service层代码编写完了,本文我们将再来把商品数据导入到索引库中的表现层代码编写完,从而实现从数据库中导入商品数据到索引库的功能。 

我们是要在表现层中调用搜索服务的导入数据功能的,但应在哪个表现层调用呢?很显然应该在后台管理系统——taotao-manager-web工程中调用搜索服务的导入数据功能。既然服务已经发布过了,那么我们现在只须引用服务即可,在taotao-manager-web工程中的springmvc.xml文件添加如下配置。

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

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

 

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

接下来我们在taotao-manager-web工程中新建一个IndexManagerController,专门处理导入商品数据到索引库,如下图所示。 
为方便大家复制,现将IndexManagerController类的代码贴出。

/** * 索引库维护Controller * 

Title: IndexManagerController

*

Description:

*

Company: www.itcast.cn

* @version 1.0 */@Controllerpublic 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.
(MapperMethod.java:189) at org.apache.ibatis.binding.MapperMethod.
(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
你可能感兴趣的文章
PS拾色器(前景色背景色)快捷键
查看>>
Composer帮你轻松管理PHP包 autoload
查看>>
poj 2914(stoer_wanger算法求全局最小割)
查看>>
搭建交叉编译环境
查看>>
linux下tar压缩/解压的使用(tar) 压缩/解压
查看>>
菜单each+hover
查看>>
乐观锁和悲观锁【转】
查看>>
抵制长假,呼唤年假!
查看>>
Linux的安装
查看>>
修復 “Failed to bring up eth0″ in Ubuntu virtualbox
查看>>
发现linux主机再用代理上网的情况下不能用wget从外网下载资源
查看>>
查找链表中倒数第k个结点
查看>>
不只是技术!成为IT经理必备的十大软技能
查看>>
基于AgileEAS.NET SOA 平台SAAS架构技术的开源分销ERP系统-SmartERP.NET下载配置说明
查看>>
16个时髦的扁平化设计的 HTML5 & CSS3 网站模板
查看>>
c++工厂模式(Factory method)
查看>>
[RGEOS]空间拓扑关系
查看>>
java_queue
查看>>
JavaScript escape encodeURI
查看>>
Exchange模式功能
查看>>