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

时间:2023-03-09 14:23:49
分布式网上商城项目-dubbo搭建与初次使用错误

1、Spring-service启动失败

 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener

 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testServiceImpl': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [cn.thyoline.taotao.mapper.TestMapper] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(name="", shareable=true, description="", authenticationType=CONTAINER, type=java.lang.Object.class, mappedName="")}

          at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:311)

          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)

          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)

          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)

          at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)

          at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)

          at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)

          at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)

          at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)

          at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)

          at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)

          at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446)

          at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328)

          at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)

          at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)

          at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)

          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

          at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)

          at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)

          at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)

          at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)

          at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)

          at java.base/java.lang.Thread.run(Thread.java:844)

 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [cn.thyoline.taotao.mapper.TestMapper] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(name="", shareable=true, description="", authenticationType=CONTAINER, type=java.lang.Object.class, mappedName="")}

          at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1373)

          at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1119)

          at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)

          at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:508)

          at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:486)

          at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:615)

          at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:169)

          at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)

          at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:308)

          ... 22 more

可知找不到bean of type [cn.thyoline.taotao.mapper.TestMapper] 检查之后发现mapper的映射文件和mapper不匹配修改之后

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

运行之后还是有错误:

可以看出是无法自动装入字段:private cn.thyonline.taotao.mapper.TestMapper,是mapper文件的命名空间出错,检查之后发现已经修改过,但是在target包中的文件没有修改。于是,重新install

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

再次运行service层的Tomcat,运行成功

2、Spring-web启动失败

 2018-06-01 14:56:55,300 [localhost-startStop-1-SendThread(192.168.25.128:2181)] [org.apache.zookeeper.ClientCnxn]-[WARN] Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect

 java.net.ConnectException: Connection refused: no further information

          at java.base/sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

          at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)

          at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)

          at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)

意思就是,未能找到执行目标,检查之后发现zookeeper未打开

打开zookeeper:

 [root@localhost bin]# ./zkServer.sh start

JMX enabled by default Using config: /root/zookeeper-3.4.6/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@localhost bin]# ./zkServer.sh status JMX enabled by default Using config: /root/zookeeper-3.4.6/bin/../conf/zoo.cfg Mode: standalone(证明成功打开)

运行成功

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

3、在加载静态页面之后再启动,启动不了

在web层发现是没有接收到testService的目标,检查zookeeper之后,发现运行正常,应该是service层没有注册,于是检查发现

 信息: Initializing ProtocolHandler ["http-bio-8080"]

 6月 01, 2018 4:47:58 下午 org.apache.catalina.core.StandardService startInternal

 信息: Starting service Tomcat

 6月 01, 2018 4:47:58 下午 org.apache.catalina.core.StandardEngine startInternal

 信息: Starting Servlet Engine: Apache Tomcat/7.0.47

 6月 01, 2018 4:48:00 下午 org.apache.catalina.core.ApplicationContext log

 信息: No Spring WebApplicationInitializer types detected on classpath

 6月 01, 2018 4:48:00 下午 org.apache.catalina.core.ApplicationContext log

 信息: Initializing Spring root WebApplicationContext

 log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).

 log4j:WARN Please initialize the log4j system properly.

 log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Tomcat卡在这动不了了

网上搜索找到原因了~

1,多数情况下是连接数据库时出现问题,

2,如果使用mybatis 请查看 xml映射文件是否和对应的java 的dao文件名字相同,或者<mapper namespace="com.hlzt.wx.dao.TextReplyDao" >  <resultMap id="BaseResultMap" type="TextReply" > 的命名空间 com.hlzt.wx.dao.TextReplyDao是否对应,BaseResultMap type="TextReply" 的 TextReply是否定义等等。

3,检查mybatis 映射文件xml,中标签是否完全闭合,不能只有开始标签而没有闭合标签,要符合规范,不然web初始化时会一直卡在那

检查映射文件,发现

<mapper namespace="com.hlzt.wx.dao.TextReplyDao" >

parameterType="TbContentCategoryExample"

在逆向工程的时候是对应的当时的文件夹,没有对应,于是在spring的配置文件里面配置别名并且修改映射文件之后成功启动