溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

zookeeper商城項(xiàng)目舉例分析

發(fā)布時(shí)間:2021-11-16 15:33:09 來(lái)源:億速云 閱讀:136 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“zookeeper商城項(xiàng)目舉例分析”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

1.項(xiàng)目初始化啟動(dòng)時(shí),報(bào)錯(cuò)  

[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for com.zfsoft:shoping-web:0.0.1-SNAPSHOT: Could not find artifact com.zfsoft:shoping-parent:pom:0.0.1-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 3, column 11
 @ 
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR]   The project com.zfsoft:shoping-web:0.0.1-SNAPSHOT (E:\eclipseWorkspace\shoping-web\pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM for com.zfsoft:shoping-web:0.0.1-SNAPSHOT: Could not find artifact com.zfsoft:shoping-parent:pom:0.0.1-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 3, column 11 -> [Help 2]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException

解決辦法:    

Non-resolvable parent POM for com.zfsoft:shoping-web:0.0.1-SNAPSHOT: Could not find artifact com.zfsoft:shoping-parent:pom:0.0.1-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 3, column 11 -> [Help 2]

本地倉(cāng)庫(kù)中沒(méi)有shoping-parent,右鍵parent---maven install

2.運(yùn)行繼續(xù)報(bào)錯(cuò)

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building shoping-web 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for com.zfsoft:shoping-interface:jar:0.0.1-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.524 s
[INFO] Finished at: 2019-07-08T23:45:55+08:00
[INFO] Final Memory: 8M/154M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project shoping-web: Could not resolve dependencies for project com.zfsoft:shoping-web:war:0.0.1-SNAPSHOT: Could not find artifact com.zfsoft:shoping-interface:jar:0.0.1-SNAPSHOT -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

解決:多添加了interface的依賴

3.使用maven tomcat7插件運(yùn)行報(bào)錯(cuò):The ServletContentInitializer [org.springframework.web.SpringServletContainerInitializer] could not be created

[INFO] --- tomcat7-maven-plugin:2.2:run (default-cli) @ taotao-manager-web ---
[INFO] Running war on http://localhost:8080/
[INFO] Creating Tomcat server configuration at F:\eclipse-workspace-7-24\taotao-manager\taotao-manager-web\target\tomcat
[INFO] create webapp with contextPath: 
八月 11, 2017 4:14:41 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
八月 11, 2017 4:14:41 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Tomcat
八月 11, 2017 4:14:41 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.47
八月 11, 2017 4:14:42 下午 org.apache.catalina.startup.ContextConfig getServletContainerInitializer
嚴(yán)重: The ServletContentInitializer [org.springframework.web.SpringServletContainerInitializer] could not be created
java.lang.ClassNotFoundException: org.springframework.web.SpringServletContainerInitializer
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.apache.catalina.startup.ContextConfig.getServletContainerInitializer(ContextConfig.java:1668)
at org.apache.catalina.startup.ContextConfig.getServletContainerInitializers(ContextConfig.java:1652)
at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1562)

解決:

jar包不完整,刪除倉(cāng)庫(kù)中的jar包,然后重啟項(xiàng)目,右鍵項(xiàng)目---maven---maven update

4.因?yàn)槭褂胹oa架構(gòu),在service層的web.xml配置完初始化spring容器后,在web層還需要再配一個(gè)嗎?不用。

zookeeper商城項(xiàng)目舉例分析

一般我們?cè)诟溉萜鱝pplicationcontext這種配置掃描包dao、service,子容器中配置掃描controller/action

即便配置只掃描到shoping,父容器中有controller,但是依舊沒(méi)有意義;子容器中也就會(huì)有dao、service那他就不會(huì)再去父容器中找了,但是事務(wù)是在父容器中配的,子容器中使用的service是沒(méi)有事務(wù)增強(qiáng)的

父子容器他們功能完全相同,但是DispatcherServlet畢竟是一個(gè)表現(xiàn)層框架,使用父容器還可以和別的框架整合,擴(kuò)展性更好(比如父容器中再使用Struts2)

zookeeper商城項(xiàng)目舉例分析

4.RestFul

webservice一遍(使用cxf可以發(fā)布restful服務(wù)),本質(zhì)是http請(qǐng)求(get或者post)。springmvc從路徑中取值:@pathVariable

5.Dubbo只能是java和java之間通信,和其他通信使用其他兩種方式:webservice(基于soap)、resful形式(http+json)

    什么是Dubbo:服務(wù)治理中間件

zookeeper商城項(xiàng)目舉例分析

Cluster:集群節(jié)點(diǎn)

傳統(tǒng)的單一系統(tǒng)可以布置1-10個(gè)節(jié)點(diǎn)。tomcat集群,session共享,之后配置session廣播。1-10個(gè),再多性能下降

Dubbo架構(gòu)

zookeeper商城項(xiàng)目舉例分析

zookeeper商城項(xiàng)目舉例分析

zookeeper商城項(xiàng)目舉例分析

zookeeper商城項(xiàng)目舉例分析

zookeeper商城項(xiàng)目舉例分析

zookeeper商城項(xiàng)目舉例分析

zookeeper商城項(xiàng)目舉例分析

zookeeper商城項(xiàng)目舉例分析

zookeeper商城項(xiàng)目舉例分析

注冊(cè)中心:

    zookeeper(集群管理工具),可以管理hodoop集群等等。但是dubbo中zookeeper是用來(lái)做注冊(cè)中心的,不用來(lái)管理集群。

    當(dāng)然也可以使用redis作為注冊(cè)中心

使用步驟(Linux版)

    解壓縮---》目錄下新建data文件夾

zookeeper商城項(xiàng)目舉例分析

切換到conf目錄,將zoo_sample.cfg改名為zoo.cfg

zookeeper商城項(xiàng)目舉例分析

編輯zzoo.cfg,將dataDir改為剛才新建的data目錄

zookeeper商城項(xiàng)目舉例分析

回到bin目錄啟動(dòng)zookeeper

zookeeper商城項(xiàng)目舉例分析

查看是否啟動(dòng)成功

zookeeper商城項(xiàng)目舉例分析

7,問(wèn)題:spring明明定義的是4.2但是里面依賴進(jìn)來(lái)了2.6的jar包

zookeeper商城項(xiàng)目舉例分析

解決:

zookeeper商城項(xiàng)目舉例分析

右鍵exclusion,然后回到pom文件處查看

zookeeper商城項(xiàng)目舉例分析

已經(jīng)被排除,保存pom文件即可

zookeeper商城項(xiàng)目舉例分析

繼續(xù)排除沖突jar包,方法同上

dubbo的配置文件

    在service模塊中

zookeeper商城項(xiàng)目舉例分析

zookeeper商城項(xiàng)目舉例分析

    在web模塊中

zookeeper商城項(xiàng)目舉例分析

zookeeper商城項(xiàng)目舉例分析

8.問(wèn)題:406錯(cuò)誤

如果有時(shí)候出現(xiàn)406錯(cuò)誤,可能是沒(méi)有吧jackson包加進(jìn)來(lái)

9.問(wèn)題:測(cè)試dubbo的時(shí)候,控制臺(tái)卡主,看不到錯(cuò)誤信息,添加log4j.properties后,發(fā)現(xiàn)報(bào)錯(cuò)

Opening socket connection to server 10.70.42.99/10.70.42.99:2181. Will not attempt to authenticate using SASL (無(wú)法定位登錄配置)

原因:服務(wù)器端口開(kāi)放2181或者關(guān)閉防火墻,同時(shí)阿里云服務(wù)器開(kāi)放2181端口

10.dubbo配置完成后,啟動(dòng)項(xiàng)目

11.啟動(dòng)項(xiàng)目后輸入web層的mapping:http://localhost:8081/item/679532

zookeeper商城項(xiàng)目舉例分析

報(bào)錯(cuò)

[DUBBO] Got unchecked and undeclared exception which called by 192.168.1.109. service: com.shoping.service.ItemService, method: findById, exception: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.shoping.mapper.TbItemMapper.selectByPrimaryKey, dubbo version: 2.5.3, current host: 127.0.0.1
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.shoping.mapper.TbItemMapper.selectByPrimaryKey

找不到對(duì)應(yīng)的實(shí)現(xiàn),但是這個(gè)是通過(guò)mybatis逆向工程生成的

zookeeper商城項(xiàng)目舉例分析

也就是xml文件就是實(shí)現(xiàn)類了,去編譯后的目錄查看

zookeeper商城項(xiàng)目舉例分析

只有dao模塊接口類的class文件,并沒(méi)有xml文件。mapping映射文件未發(fā)布的問(wèn)題。

zookeeper商城項(xiàng)目舉例分析

配置的作用:吧src/main/java目錄下的xml文件也配置到編譯后的目錄下

重啟manage模塊,并查看編譯后的目錄

zookeeper商城項(xiàng)目舉例分析

重新輸入地址,又報(bào)錯(cuò)

zookeeper商城項(xiàng)目舉例分析

后臺(tái)報(bào)錯(cuò)內(nèi)容

 [DUBBO] Fail to encode response: Response [id=6, version=2.0.0, status=20, event=false, error=null, result=RpcResult [result=com.shoping.pojo.TbItem@7d82ecd5, exception=null]], send bad_response info instead, cause: Serialized class com.shoping.pojo.TbItem must implement java.io.Serializable, dubbo version: 2.5.3, current host: 127.0.0.1
java.lang.IllegalStateException: Serialized class com.shoping.pojo.TbItem must implement java.io.Serializable
	at com.alibaba.com.caucho.hessian.io.SerializerFactory.getDefaultSerializer(SerializerFactory.java:261)
	at com.alibaba.com.caucho.hessian.io.SerializerFactory.getSerializer(SerializerFactory.java:233)
	at com.alibaba.com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:406)
	at com.alibaba.dubbo.common.serialize.support.hessian.Hessian2ObjectOutput.writeObject(Hessian2ObjectOutput.java:92)
	at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.encodeResponseData(DubboCodec.java:200)
	at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.encodeResponse(ExchangeCodec.java:276)
	at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.encode(ExchangeCodec.java:77)
	at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.encode(DubboCountCodec.java:39)
	at com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalEncoder.encode(NettyCodecAdapter.java:81)
	at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.doEncode(OneToOneEncoder.java:66)
	at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:59)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:591)
	at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendDownstream(DefaultChannelPipeline.java:784)
	at org.jboss.netty.channel.SimpleChannelHandler.writeRequested(SimpleChannelHandler.java:292)
	at com.alibaba.dubbo.remoting.transport.netty.NettyHandler.writeRequested(NettyHandler.java:99)
	at org.jboss.netty.channel.SimpleChannelHandler.handleDownstream(SimpleChannelHandler.java:254)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:591)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:582)
	at org.jboss.netty.channel.Channels.write(Channels.java:704)
	at org.jboss.netty.channel.Channels.write(Channels.java:671)
	at org.jboss.netty.channel.AbstractChannel.write(AbstractChannel.java:248)
	at com.alibaba.dubbo.remoting.transport.netty.NettyChannel.send(NettyChannel.java:98)
	at com.alibaba.dubbo.remoting.transport.AbstractPeer.send(AbstractPeer.java:51)
	at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:171)
	at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52)
	at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:744)

實(shí)體對(duì)象沒(méi)有序列化,加上序列化接口即可

10.dubbo監(jiān)控中心

前面已經(jīng)安裝了zookeeper注冊(cè)中心,生產(chǎn)者,消費(fèi)者,還有個(gè)監(jiān)控中心

把dubbo-admin.war放到tomcat的webapps下面

啟動(dòng)tomcat,輸入網(wǎng)址:http://47.97.125.139:8080/dubbo-admin

zookeeper商城項(xiàng)目舉例分析

zookeeper商城項(xiàng)目舉例分析

點(diǎn)進(jìn)去,可以看到生產(chǎn)者服務(wù)的ip和端口號(hào)

zookeeper商城項(xiàng)目舉例分析

切換到消費(fèi)者

zookeeper商城項(xiàng)目舉例分析

“zookeeper商城項(xiàng)目舉例分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI