16:12:35.164 [main] ERROR org.apache.dubbo.config.deploy.DefaultModuleDeployer - [DUBBO] Model start failed: Dubbo Module[1.1.1] start failed: java.lang.NoSuchMethodError: org.apache.curator.framework.api.CreateBuilder.creatingParentContainersIfNeeded()Lorg/apache/curator/framework/api/ProtectACLCreateModePathAndBytesable;, dubbo version: 3.2.2, current host: 192.168.229.1, error code: 5-14. This may be caused by , go to https://dubbo.apache.org/faq/5/14 to find instructions.
java.lang.NoSuchMethodError: org.apache.curator.framework.api.CreateBuilder.creatingParentContainersIfNeeded()Lorg/apache/curator/framework/api/ProtectACLCreateModePathAndBytesable;
at org.apache.curator.x.discovery.details.ServiceDiscoveryImpl.internalRegisterService(ServiceDiscoveryImpl.java:222)
at org.apache.curator.x.discovery.details.ServiceDiscoveryImpl.registerService(ServiceDiscoveryImpl.java:188)
at org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery.doRegister(ZookeeperServiceDiscovery.java:101)
at org.apache.dubbo.registry.client.AbstractServiceDiscovery.register(AbstractServiceDiscovery.java:143)
at java.util.ArrayList.forEach(ArrayList.java:1259)
at org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.registerMetadataAndInstance(ServiceInstanceMetadataUtils.java:204)
at org.apache.dubbo.config.deploy.DefaultApplicationDeployer.lambda$registerServiceInstance$5(DefaultApplicationDeployer.java:875)
at org.apache.dubbo.metrics.event.MetricsEventBus.post(MetricsEventBus.java:80)
at org.apache.dubbo.metrics.event.MetricsEventBus.post(MetricsEventBus.java:62)
at org.apache.dubbo.config.deploy.DefaultApplicationDeployer.registerServiceInstance(DefaultApplicationDeployer.java:873)
at org.apache.dubbo.config.deploy.DefaultApplicationDeployer.prepareApplicationInstance(DefaultApplicationDeployer.java:724)
at org.apache.dubbo.config.deploy.DefaultApplicationDeployer.checkState(DefaultApplicationDeployer.java:1034)
at org.apache.dubbo.config.deploy.DefaultApplicationDeployer.notifyModuleChanged(DefaultApplicationDeployer.java:1022)
at org.apache.dubbo.config.deploy.DefaultModuleDeployer.onModuleStarted(DefaultModuleDeployer.java:307)
at org.apache.dubbo.config.deploy.DefaultModuleDeployer.startSync(DefaultModuleDeployer.java:177)
at org.apache.dubbo.config.deploy.DefaultModuleDeployer.start(DefaultModuleDeployer.java:145)
at org.apache.dubbo.config.deploy.DefaultApplicationDeployer.startModules(DefaultApplicationDeployer.java:706)
at org.apache.dubbo.config.deploy.DefaultApplicationDeployer.doStart(DefaultApplicationDeployer.java:670)
at org.apache.dubbo.config.deploy.DefaultApplicationDeployer.start(DefaultApplicationDeployer.java:643)
at org.apache.dubbo.config.bootstrap.DubboBootstrap.start(DubboBootstrap.java:227)
at org.apache.dubbo.config.bootstrap.DubboBootstrap.start(DubboBootstrap.java:216)
at com.iwangding.core.dubbo.test.Server1.pubService1(Server1.java:45)
at com.iwangding.core.dubbo.test.Server1.main(Server1.java:55)
16:08:54.658 [main] ERROR org.apache.dubbo.config.deploy.DefaultModuleDeployer - [DUBBO] Model start failed: Dubbo Module[1.1.1] start failed: java.lang.NoClassDefFoundError: org/apache/curator/x/discovery/ServiceDiscoveryBuilder, dubbo version: 3.2.2, current host: 192.168.229.1, error code: 5-14. This may be caused by , go to https://dubbo.apache.org/faq/5/14 to find instructions.
java.lang.NoClassDefFoundError: org/apache/curator/x/discovery/ServiceDiscoveryBuilder
at org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkUtils.buildServiceDiscovery(CuratorFrameworkUtils.java:64)
at org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery.<init>(ZookeeperServiceDiscovery.java:84)
at org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscoveryFactory.createDiscovery(ZookeeperServiceDiscoveryFactory.java:27)
at org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory.lambda$getServiceDiscovery$0(AbstractServiceDiscoveryFactory.java:54)
at org.apache.dubbo.common.utils.ConcurrentHashMapUtils.computeIfAbsent(ConcurrentHashMapUtils.java:44)
at org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory.getServiceDiscovery(AbstractServiceDiscoveryFactory.java:54)
at org.apache.dubbo.registry.client.ServiceDiscoveryRegistry.getServiceDiscovery(ServiceDiscoveryRegistry.java:125)
at org.apache.dubbo.registry.client.ServiceDiscoveryRegistry.createServiceDiscovery(ServiceDiscoveryRegistry.java:112)
at org.apache.dubbo.registry.client.ServiceDiscoveryRegistry.<init>(ServiceDiscoveryRegistry.java:89)
at org.apache.dubbo.registry.client.ServiceDiscoveryRegistryFactory.createRegistry(ServiceDiscoveryRegistryFactory.java:35)
at org.apache.dubbo.registry.support.AbstractRegistryFactory.getRegistry(AbstractRegistryFactory.java:95)
at org.apache.dubbo.registry.RegistryFactoryWrapper.getRegistry(RegistryFactoryWrapper.java:33)
at org.apache.dubbo.registry.RegistryFactory$Adaptive.getRegistry(RegistryFactory$Adaptive.java)
at org.apache.dubbo.registry.integration.RegistryProtocol.getRegistry(RegistryProtocol.java:414)
at org.apache.dubbo.registry.integration.RegistryProtocol.export(RegistryProtocol.java:259)
at org.apache.dubbo.qos.protocol.QosProtocolWrapper.export(QosProtocolWrapper.java:80)
at org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:66)
at org.apache.dubbo.rpc.protocol.ProtocolSecurityWrapper.export(ProtocolSecurityWrapper.java:83)
at org.apache.dubbo.rpc.cluster.filter.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:58)
at org.apache.dubbo.rpc.protocol.ProtocolSerializationWrapper.export(ProtocolSerializationWrapper.java:47)
at org.apache.dubbo.rpc.protocol.InvokerCountWrapper.export(InvokerCountWrapper.java:42)
at org.apache.dubbo.rpc.Protocol$Adaptive.export(Protocol$Adaptive.java)
at org.apache.dubbo.config.ServiceConfig.doExportUrl(ServiceConfig.java:803)
at org.apache.dubbo.config.ServiceConfig.exportRemote(ServiceConfig.java:781)
at org.apache.dubbo.config.ServiceConfig.exportUrl(ServiceConfig.java:722)
at org.apache.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:514)
at org.apache.dubbo.config.ServiceConfig.lambda$doExportUrls$5(ServiceConfig.java:493)
at org.apache.dubbo.metrics.event.MetricsEventBus.post(MetricsEventBus.java:80)
at org.apache.dubbo.metrics.event.MetricsEventBus.post(MetricsEventBus.java:62)
at org.apache.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:482)
at org.apache.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:453)
at org.apache.dubbo.config.ServiceConfig.export(ServiceConfig.java:305)
at org.apache.dubbo.config.deploy.DefaultModuleDeployer.exportServiceInternal(DefaultModuleDeployer.java:393)
at org.apache.dubbo.config.deploy.DefaultModuleDeployer.exportServices(DefaultModuleDeployer.java:365)
at org.apache.dubbo.config.deploy.DefaultModuleDeployer.startSync(DefaultModuleDeployer.java:164)
at org.apache.dubbo.config.deploy.DefaultModuleDeployer.start(DefaultModuleDeployer.java:145)
at org.apache.dubbo.config.deploy.DefaultApplicationDeployer.startModules(DefaultApplicationDeployer.java:706)
at org.apache.dubbo.config.deploy.DefaultApplicationDeployer.doStart(DefaultApplicationDeployer.java:670)
at org.apache.dubbo.config.deploy.DefaultApplicationDeployer.start(DefaultApplicationDeployer.java:643)
at org.apache.dubbo.config.bootstrap.DubboBootstrap.start(DubboBootstrap.java:227)
at org.apache.dubbo.config.bootstrap.DubboBootstrap.start(DubboBootstrap.java:216)
at com.iwangding.core.dubbo.test.Server1.pubService1(Server1.java:45)
at com.iwangding.core.dubbo.test.Server1.main(Server1.java:55)
Caused by: java.lang.ClassNotFoundException: org.apache.curator.x.discovery.ServiceDiscoveryBuilder
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 43 common frames omitted
以上两个报错,在pom.xml中增加:
<!-- https://mvnrepository.com/artifact/org.javassist/javassist -->
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.29.2-GA</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.curator/curator-x-discovery-server -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-x-discovery-server</artifactId>
<version>5.5.0</version>
</dependency>
多网卡时报(有vmware的网卡):No valid ip found from environment, try to get local host., dubbo version:
package com.iwangding.core.dubbo.test;
import static org.apache.dubbo.common.constants.QosConstants.QOS_PORT;
import static org.apache.dubbo.common.constants.QosConstants.QOS_HOST;
import java.util.HashMap;
import org.apache.dubbo.common.constants.CommonConstants;
import org.apache.dubbo.config.Constants;
import org.apache.dubbo.config.ProtocolConfig;
import org.apache.dubbo.config.ServiceConfig;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
import org.apache.dubbo.qos.common.QosConstants;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.iwangding.core.dubbo.DubboConfiguration;
import com.iwangding.core.dubbo.service.ITestProviderService;
import com.iwangding.core.dubbo.service.MyDubboConfig;
import com.iwangding.core.dubbo.service.TestProviderServiceImpl;
public class Server1 {
static final String HOSTS = "192.168.1.61";
public static void pubService1() {
ProtocolConfig pCfg = new ProtocolConfig(CommonConstants.TRIPLE, 22022);
//System.setProperty(pCfg.getName().toUpperCase()+"_"+CommonConstants.DUBBO_IP_TO_BIND, "0.0.0.0"); 会报错,说ip不可用
pCfg.setHost(HOSTS);
// pCfg.setHost("0.0.0.0");
// pCfg.setName(CommonConstants.DUBBO);//协议名 不能改协议名,否则报错
// pCfg.setNetworker(networker);
pCfg.setExtProtocol(CommonConstants.DUBBO+",");
// pCfg.setServer("192.168.10.105");
ServiceConfig<ITestProviderService> service = new ServiceConfig<>();
service.setInterface(ITestProviderService.class);
service.setRef(new TestProviderServiceImpl());
service.setGroup("dev");
service.setVersion("1.0.0");
service.setLoadbalance("roundrobin");
service.setTimeout(5000);
System.setProperty(pCfg.getName().toUpperCase()+"_"+Constants.DUBBO_IP_TO_REGISTRY, HOSTS);
// System.setProperty(pCfg.getName().toUpperCase()+"_"+CommonConstants.DUBBO_IP_TO_BIND, "0.0.0.0"); //会报错,说0000不是有效ip
HashMap<String, String> params = new HashMap<>();
params.put(QOS_PORT, (QosConstants.DEFAULT_PORT+DubboConfiguration.id)+"");
params.put(QOS_HOST, HOSTS);
// params.put(CommonConstants.DUBBO_IP_TO_BIND, "0.0.0.0");
// params.put(Constants.DUBBO_IP_TO_REGISTRY, HOSTS);
service.setParameters(params);
// service.setRegistry(registryConfig); 不要采用这两种方式,没用获取不到
// service.setProtocol(pCfg); 不要采用这两种方式,没用获取不到
// 启动 Dubbo
DubboBootstrap.getInstance()
.application("lein-test-dubbo")//"lein-dubbo-provider-"+DubboConfiguration.id
.registry(MyDubboConfig.getRegisty())
.protocol(pCfg)
.service(service)
.start()
.await();
}
public static void main(String[] args) {
DubboConfiguration.id = 1;
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(DubboConfiguration.class);
System.out.println("> Dubbo Server will context.start");
context.start();
pubService1();
System.out.println("> Dubbo Server "+DubboConfiguration.id+" Started");
while(DubboConfiguration.running) {
try {
Thread.sleep(3000);
} catch(Exception e) {
e.printStackTrace();
}
}
context.close();
}
}
public static RegistryConfig getRegisty() {
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setProtocol("zookeeper");
registryConfig.setAddress("10.0.0.196");
registryConfig.setPort(2181);
registryConfig.setUsername("kafka");
registryConfig.setPassword("ax1");
return registryConfig;
}
package com.iwangding.core.dubbo.test;
import static org.apache.dubbo.common.constants.QosConstants.QOS_HOST;
import static org.apache.dubbo.common.constants.QosConstants.QOS_PORT;
import java.io.IOException;
import java.util.HashMap;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.ProtocolConfig;
import org.apache.dubbo.config.ServiceConfig;
import org.apache.dubbo.qos.common.QosConstants;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.iwangding.core.dubbo.DubboConfiguration;
import com.iwangding.core.dubbo.service.ITestProviderService;
import com.iwangding.core.dubbo.service.MyDubboConfig;
import com.iwangding.core.dubbo.service.TestProviderServiceImpl;
public class Server2 {
static final String HOSTS = "192.168.1.61";
private static void pubService2() {
// 服务实现
TestProviderServiceImpl demoService = new TestProviderServiceImpl();
// 当前应用配置
ApplicationConfig application = new ApplicationConfig();
application.setName("demo-provider");
// 服务提供者协议配置
ProtocolConfig protocol = new ProtocolConfig();
protocol.setName("tri");
protocol.setPort(12345);
protocol.setHost(HOSTS);
protocol.setThreads(200);
// 注意:ServiceConfig为重对象,内部封装了与注册中心的连接,以及开启服务端口
// 服务提供者暴露服务配置
ServiceConfig<ITestProviderService> service = new ServiceConfig<ITestProviderService>(); // 此实例很重,封装了与注册中心的连接,请自行缓存,否则可能造成内存和连接泄漏
service.setApplication(application);
service.setRegistry(MyDubboConfig.getRegisty()); // 多个注册中心可以用setRegistries()
service.setProtocol(protocol); // 多个协议可以用setProtocols()
service.setInterface(ITestProviderService.class);
service.setRef(demoService);
service.setGroup("dev");
service.setVersion("1.0.0");
service.setLoadbalance("roundrobin");
service.setTimeout(5000);
HashMap<String, String> params = new HashMap<>();
params.put(QOS_PORT, (QosConstants.DEFAULT_PORT+DubboConfiguration.id)+"");
service.setParameters(params);
params.put(QOS_HOST, HOSTS);
// 暴露及注册服务
service.export();
// 挂起等待(防止进程退出)
try {
System.in.read();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
DubboConfiguration.id = 2;
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(DubboConfiguration.class);
context.start();
System.out.println("> Dubbo Server "+DubboConfiguration.id+" Started");
pubService2();
while(DubboConfiguration.running) {
try {
Thread.sleep(3000);
} catch(Exception e) {
e.printStackTrace();
}
}
context.close();
}
}
java.lang.IllegalAccessError: tried to access method com.google.protobuf.LazyStringArrayList.emptyList()
java.lang.NoClassDefFoundError: com/google/protobuf/Message
这两个报错,看下面的pom.xml:
<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<version>3.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.javassist/javassist -->
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.29.2-GA</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.curator/curator-x-discovery-server -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-x-discovery-server</artifactId>
<version>5.5.0</version>
</dependency>
<!-- 主要是为了引入日志 -->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.8.1</version>
<!--排除这个slf4j-log4j12-->
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>