启动服务提供方的时候没问题,正常能运行,但是进行测试(服务消费方)的时候就报错了,请各位帮忙看看,这问题研究了2天了,还没搞定
报错的全部内容:(下面有工程的全部代码和使用的依赖和版本信息)
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cn.tx.test.ConsumerTest': Unsatisfied dependency expressed through field 'userService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userService': factorybean threw exception on object creation; nested exception is java.lang.IllegalStateException: Can't assign requested address
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcesspropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.populateBean(AbstractAutowireCapablebeanfactory.java:1268)
at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.autowireBeanProperties(AbstractAutowireCapablebeanfactory.java:386)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:118)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runchild(SpringJUnit4ClassRunner.java:247)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runchild(SpringJUnit4ClassRunner.java:94)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runchildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userService': factorybean threw exception on object creation; nested exception is java.lang.IllegalStateException: Can't assign requested address
at org.springframework.beans.factory.support.factorybeanRegistrySupport.doGetobjectFromfactorybean(factorybeanRegistrySupport.java:177)
at org.springframework.beans.factory.support.factorybeanRegistrySupport.getobjectFromfactorybean(factorybeanRegistrySupport.java:103)
at org.springframework.beans.factory.support.Abstractbeanfactory.getobjectForBeanInstance(Abstractbeanfactory.java:1640)
at org.springframework.beans.factory.support.Abstractbeanfactory.doGetBean(Abstractbeanfactory.java:254)
at org.springframework.beans.factory.support.Abstractbeanfactory.getBean(Abstractbeanfactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208)
at org.springframework.beans.factory.support.DefaultListablebeanfactory.addCandidateEntry(DefaultListablebeanfactory.java:1316)
at org.springframework.beans.factory.support.DefaultListablebeanfactory.findAutowireCandidates(DefaultListablebeanfactory.java:1282)
at org.springframework.beans.factory.support.DefaultListablebeanfactory.doResolveDependency(DefaultListablebeanfactory.java:1101)
at org.springframework.beans.factory.support.DefaultListablebeanfactory.resolveDependency(DefaultListablebeanfactory.java:1066)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
... 27 more
Caused by: java.lang.IllegalStateException: Can't assign requested address
at com.alibaba.dubbo.registry.multicast.MulticastRegistry.<init>(MulticastRegistry.java:116)
at com.alibaba.dubbo.registry.multicast.MulticastRegistryFactory.createRegistry(MulticastRegistryFactory.java:31)
at com.alibaba.dubbo.registry.support.AbstractRegistryFactory.getRegistry(AbstractRegistryFactory.java:96)
at com.alibaba.dubbo.registry.RegistryFactory$Adaptive.getRegistry(RegistryFactory$Adaptive.java)
at com.alibaba.dubbo.registry.integration.RegistryProtocol.refer(RegistryProtocol.java:272)
at com.alibaba.dubbo.qos.protocol.QosProtocolWrapper.refer(QosProtocolWrapper.java:63)
at com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.refer(ProtocolListenerWrapper.java:65)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.refer(ProtocolFilterWrapper.java:106)
at com.alibaba.dubbo.rpc.Protocol$Adaptive.refer(Protocol$Adaptive.java)
at com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:394)
at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:333)
at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163)
at com.alibaba.dubbo.config.spring.ReferenceBean.getobject(ReferenceBean.java:66)
at org.springframework.beans.factory.support.factorybeanRegistrySupport.doGetobjectFromfactorybean(factorybeanRegistrySupport.java:170)
... 37 more
Caused by: java.net.socketException: Can't assign requested address
at java.net.PlainDatagramSocketImpl.join(Native Method)
at java.net.AbstractPlainDatagramSocketImpl.join(AbstractPlainDatagramSocketImpl.java:178)
at java.net.MulticastSocket.joinGroup(MulticastSocket.java:323)
at com.alibaba.dubbo.registry.multicast.MulticastRegistry.<init>(MulticastRegistry.java:89)
... 50 more
服务接口 UserService.interface
package cn.tx.service;
public interface UserService {
public String seyHello(String msg);
}
服务提供方-实现类UserServiceImpl.java
package cn.tx.service.impl;
import cn.tx.service.UserService;
public class UserServiceImpl implements UserService {
public String seyHello(String msg) {
System.out.println("远程调用服务:"+msg);
return "hello:"+msg;
}
}
服务提供方-启动服务的类
package cn.tx.boot;
import org.springframework.context.support.ClasspathXmlApplicationContext;
import java.io.IOException;
public class UserServletBoot {
public static void main(String[] args) throws IOException {
//加载spring的配置文件,容器已经启动了,注册地址了
ClasspathXmlApplicationContext ac = new ClasspathXmlApplicationContext("classpath:dubbo_provider.xml");
// 阻塞
system.in.read();
}
}
<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="userService_provider"/>
<!--注册中心地址-->
<dubbo:registry address="multicast://224.5.6.7:1234"/>
<!--指定协议和端口号-->
<dubbo:protocol name="dubbo" port="20880"/>
<!--发布服务接口-->
<dubbo:service interface="cn.tx.service.UserService" ref="userService"/>
<!--使用bean管理实现类-->
<bean id="userService" class="cn.tx.service.impl.UserServiceImpl"/>
</beans>
<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="userService_consumer"/>
<!--注册中心地址-->
<dubbo:registry address="multicast://224.5.6.7:1234"/>
<!--指定接口-->
<dubbo:reference interface="cn.tx.service.UserService" id="userService"/>
</beans>
服务消费方-启动测试ConsumerTest.java
package cn.tx.test;
import cn.tx.service.UserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:dubbo_consumer.xml")
public class ConsumerTest {
@Autowired
private UserService userService;
@Test
public void run1(){
String msg = userService.seyHello("拓新教育");
System.out.println(msg);
}
}
工程结构
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.tx</groupId>
<artifactId>tx_dubbo_parent</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>tx_dubbo_common</module>
<module>tx_dubbo_provider</module>
<module>tx_dubbo_consumer</module>
</modules>
<packaging>pom</packaging>
<dependencies>
<!--dubbo-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.2</version>
</dependency>
<!--zookeeper-->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.9</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.9</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--日志-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<!--单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--spring整合单元测试-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.16.RELEASE</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
IDEA的版本是2017.3
jdk是1.8
maven版本是apache-maven-3.5.3
请各位大神帮忙看看,万分感谢!!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。