jshell 如何调用 dubbo 远程服务接口

2022-07-16 12:46:16 +08:00
 873792861

#如题,背景如下:我目前处于处于软件实施这个岗位,平时会用 python 处理一些数据。所以,对 java 理解甚少。公司的各个系统是用 dubbo 连接各个服务的。但 python 没有可以调 dubbo 协议接口的库,所以我想通过 jshell 来调用 dubbo 接口。 #测试使用的是dubbo 示例中的 dubbo-samples-protobuf ,我把服务和客户端分别放在两台机器上,用 maven 编译测试成功后。把 traget 文件夹下 lib 里的 jar 包复制到 jshell 自定义的 class 文件夹里。然后用 jshell 进行测试,代码如下

import org.springframework.context.support.ClassPathXmlApplicationContext;
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("file:/home/dubbo-consumer.xml");
context.start();

以上代码片段没有报错,接着输入下面代码,回车测试

context.getBean("demoService")

然后报错了:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'demoService': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: org.apache.dubbo.demo.DemoService
	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:197)
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1080)
	at .(#27:1)

然后换成下方代码,再运行同样报错:

public interface DemoService {
    String sayHello(String name);
};
public class DemoServiceImpl implements DemoService {
    public String sayHello(String name) {
        return "Hello " + name;
    }
};
DemoService demoService = (DemoService)context.getBean("demoService");

#恳请广大 V 友告知这是为啥报错呢?如果我想用 jshell 来调用 dubbo 远程服务接口,该怎么办呢?

1580 次点击
所在节点    Java
7 条回复
873792861
2022-07-16 13:02:26 +08:00
补充一点,用的是 jdk10
putaozhenhaochi
2022-07-16 13:15:50 +08:00
配置文件贴出来
putaozhenhaochi
2022-07-16 13:20:23 +08:00
873792861
2022-07-16 14:01:51 +08:00
@putaozhenhaochi 已经补充
Kaiv2
2022-07-16 15:30:08 +08:00
873792861
2022-07-16 17:46:31 +08:00
@putaozhenhaochi 这个不适合,也不管用
kkkiio
2022-07-17 10:33:03 +08:00
Spring Shell 也许能解决你的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/866614

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX