dubbo启动消费者报错

发布于 2021-12-02 01:04:46 字数 3768 浏览 835 评论 25

严重: 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 'userService': Invocation of init method failed; nested exception is java.lang.IllegalStateException: com.home.service.UserService

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1482)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

at java.util.concurrent.FutureTask.run(FutureTask.java:262)

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:745)

Caused by: java.lang.IllegalStateException: com.home.service.UserService

at com.alibaba.dubbo.config.ReferenceConfig.checkAndLoadConfig(ReferenceConfig.java:181)

at com.alibaba.dubbo.config.spring.ReferenceBean.afterPropertiesSet(ReferenceBean.java:168)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1541)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1479)

... 21 more

Caused by: java.lang.ClassNotFoundException: com.home.service.UserService

at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1858)

at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1701)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:278)

at com.alibaba.dubbo.config.ReferenceConfig.checkAndLoadConfig(ReferenceConfig.java:178)

... 24 more

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(25

瀞厅☆埖开 2021-12-03 16:02:26

还是不可以

无声静候 2021-12-03 16:02:25

我使用maven clean,然后用maven install会报:

柒夜笙歌凉 2021-12-03 16:02:24

回复
@liujl110 : 请问你后来是怎么解决的呢?我也遇到了一样的问题

成熟稳重的好男人 2021-12-03 16:02:24

会不会是打包的问题,我没有打包,只配置了依赖

陌上芳菲 2021-12-03 16:02:23

我猜是spring的配置和dubbo的配置加载顺序的问题,加载dubbo之前必须先加载bean配置,否则就会出现ClassNotFound.你试试将bean的配置加到dubbo配置的第一行看看结果

情绪失控 2021-12-03 16:02:22

web.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name>Archetype Created Web Application</display-name>
  <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/dubbo-consumer.xml</param-value>
</context-param>
<!-- 编码过滤器 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 防止Spring内存溢出监听器 -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>

<!-- Spring MVC servlet -->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-context.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

流心雨 2021-12-03 16:02:21

spring-mvc.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans  
           http://www.springframework.org/schema/beans/spring-beans-3.2.xsd  
           http://www.springframework.org/schema/aop   
           http://www.springframework.org/schema/aop/spring-aop-3.2.xsd  
           http://www.springframework.org/schema/tx  
           http://www.springframework.org/schema/tx/spring-tx-3.2.xsd  
           http://www.springframework.org/schema/context  
           http://www.springframework.org/schema/context/spring-context-3.2.xsd"
default-autowire="byName" default-lazy-init="false">

<!-- 采用注释的方式配置bean -->
<context:annotation-config />
<mvc:annotation-driven/>

<!-- 配置要扫描的包 -->
<context:component-scan base-package="com.home" />

<!-- 定义跳转的文件的前后缀 ,视图模式配置-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
</bean>

</beans>

成熟稳重的好男人 2021-12-03 16:02:19

dubbo-consumer.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"

xsi:schemaLocation="http://www.springframework.org/schema/beans  

        http://www.springframework.org/schema/beans/spring-beans.xsd  

        http://code.alibabatech.com/schema/dubbo  

        http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

<!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->

<dubbo:application name="oa-web-boss" />

<!-- 使用zookeeper注册中心暴露服务地址 -->

<!-- 注册中心地址 -->

<dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />

<!-- 用户服务接口 -->

<dubbo:reference interface="com.home.service.UserService" id="userService" check="false" />

</beans>  

柠檬 2021-12-03 16:02:18

回复
我最近也在学dubbo,这是我从官方文档看到的,所以感觉是POM里面的配置问题, http://dubbo.io/FAQ-zh.htm

猫烠⑼条掵仅有一顆心 2021-12-03 16:02:17

回复
在POM最后一行加上这段试试呢,生产者和消费者的POM都加上看看 <build> <finalName>生产者/消费者名称</finalName> <build>

酷到爆炸 2021-12-03 16:02:17

我把所有文件都贴出来了,你帮我看下吧。

天涯离梦残月幽梦 2021-12-03 16:02:13

回复
官方git上的pom文件地址如下:https://github.com/alibaba/dubbo/blob/master/pom.xml

拍不死你 2021-12-03 16:02:13

回复
官网的POM配置上面在dependecy标签后面有个build标签,感觉是少了这个东西,里面是关于maven工程的一些配置

沦落红尘 2021-12-03 16:02:12

这个是加了的,启动tomcat还是报错

成熟稳重的好男人 2021-12-03 16:02:12

你的POM能发出来看看吗,感觉像是Dubbo的XML配置没加载进maven~

坚持沉默 2021-12-03 16:02:05
<dubbo:consumer check="false" />

关掉tomcat启动时检查服务,如果能正常启动那就是服务不可用了

伪装你 2021-12-03 16:02:01

我的项目是maven管理的,在pom文件中配置了接口的依赖,接口怎么会没加载,在测试类中getBeans就可以拿到啊!

心舞飞扬 2021-12-03 16:01:56

回复
可是错误信息显示没拿到啊,重新install下?

眼眸里的那抹悲凉 2021-12-03 16:01:39

回复
重新install会报错

水水月牙 2021-12-03 16:01:38

java.lang.ClassNotFoundException: com.home.service.UserService生产者的接口没加载

辞别 2021-12-03 15:50:53

provider没问题,可以在dubbo管控台查看到服务

羁拥 2021-12-03 15:49:16

@liujl110 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="
http://www.springframework.org/schema/beans" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="
http://code.alibabatech...

只为守护你 2021-12-03 12:40:58

IllegalStateException 大多是provider 没注册上

爱的那么颓废 2021-12-03 01:34:46

我写了一个测试类,运行没有问题,用web.xml启动就报错

乞讨 2021-12-02 12:56:40

ClassNotFoundException ?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文