- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Springboot 入门应用程序。一切正常。然后我将客户端和服务器移动到新的包中。一切都会编译,但在运行时,当我运行客户端时,我收到错误:未找到未实现的方法。
我检查了该方法确实已实现。当我启动 Springboot 应用程序时,我在哪里确认 bean 本身已加载?我只看到应用程序已启动并正在运行的确认信息,但日志中没有加载的 bean 列表。
这是我的 Springboot 应用程序。我所做的只是将客户端和服务器 bean 移动到名为 example.client 和 example.server 的新包中。在它们与 spring boot com.test.MyApplication 位于同一包中之前
io.grpc.StatusRuntimeException: UNIMPLEMENTED: Method not found: example.GreetingService/greetingWithResponseStream
at io.grpc.Status.asRuntimeException(Status.java:526)
at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:434)
at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
package com.test;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
GreetingService.proto:
syntax = "proto3";
package example;
message HelloRequest {
string name = 1;
}
message HelloResponse {
string greeting = 1;
}
service GreetingService {
rpc greeting (HelloRequest) returns (HelloResponse);
rpc greetingWithResponseStream (HelloRequest) returns (stream HelloResponse);
rpc greetingWithRequestStream (stream HelloRequest) returns (HelloResponse);
rpc greetingWithRequestResponseStream (stream HelloRequest) returns (stream HelloResponse);
}
import example.GreetingServiceOuterClass;
import io.grpc.stub.StreamObserver;
import java.util.ArrayList;
import java.util.List;
@GrpcService
public class GreetingServiceImpl extends GreetingServiceGrpc.GreetingServiceImplBase{
@Override
public void greeting(GreetingServiceOuterClass.HelloRequest request, StreamObserver<GreetingServiceOuterClass.HelloResponse> responseObserver) {
GreetingServiceOuterClass.HelloResponse response = GreetingServiceOuterClass.HelloResponse.newBuilder()
.setGreeting("HELLO, THERE, " + request.getName())
.build();
responseObserver.onNext(response);
responseObserver.onCompleted();
}
@Override
public void greetingWithResponseStream(GreetingServiceOuterClass.HelloRequest request, StreamObserver<GreetingServiceOuterClass.HelloResponse> responseObserver) {
GreetingServiceOuterClass.HelloResponse response = GreetingServiceOuterClass.HelloResponse.newBuilder()
.setGreeting("(Stream Response) Hello there, " + request.getName())
.build();
responseObserver.onNext(response);
responseObserver.onNext(response);
responseObserver.onNext(response);
responseObserver.onCompleted();
}
@Override
public StreamObserver<GreetingServiceOuterClass.HelloRequest> greetingWithRequestStream(StreamObserver<GreetingServiceOuterClass.HelloResponse> responseObserver) {
return new StreamObserver<GreetingServiceOuterClass.HelloRequest>() {
private List<String> nameList = new ArrayList<>();
@Override
public void onNext(GreetingServiceOuterClass.HelloRequest request) {
nameList.add(request.getName());
}
@Override
public void onError(Throwable t) {
t.printStackTrace();
}
@Override
public void onCompleted() {
GreetingServiceOuterClass.HelloResponse response = GreetingServiceOuterClass.HelloResponse.newBuilder()
.setGreeting("(Stream Request) Hello there, " + String.join(" ", nameList))
.build();
responseObserver.onNext(response);
responseObserver.onCompleted();
}
};
}
@Override
public StreamObserver<GreetingServiceOuterClass.HelloRequest> greetingWithRequestResponseStream(StreamObserver<GreetingServiceOuterClass.HelloResponse> responseObserver) {
return new StreamObserver<GreetingServiceOuterClass.HelloRequest>() {
private List<String> nameList = new ArrayList<>();
@Override
public void onNext(GreetingServiceOuterClass.HelloRequest request) {
nameList.add(request.getName());
}
@Override
public void onError(Throwable t) {
t.printStackTrace();
}
@Override
public void onCompleted() {
nameList.stream()
.map(name -> GreetingServiceOuterClass.HelloResponse.newBuilder().setGreeting("(Stream Request/Response) Hello there, " + name).build())
.forEach(responseObserver::onNext);
responseObserver.onCompleted();
}
};
}
}
package example.client;
import example.GreetingServiceGrpc;
import example.GreetingServiceOuterClass;
import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;
import io.grpc.stub.StreamObserver;
import java.util.stream.Stream;
public class Client {
public static void main(String[] args) {
ManagedChannel channel = ManagedChannelBuilder.forTarget("localhost:8081")
.usePlaintext()
.build();
GreetingServiceGrpc.GreetingServiceBlockingStub stub = GreetingServiceGrpc.newBlockingStub(channel);
GreetingServiceOuterClass.HelloRequest request = GreetingServiceOuterClass.HelloRequest.newBuilder().setName("Steve").build();
GreetingServiceOuterClass.HelloResponse response = stub.greeting(request);
System.out.println(response);
}
public static class RequestStreamClient {
public static void main(String[] args) throws InterruptedException {
new Thread(() -> {
ManagedChannel channel = ManagedChannelBuilder.forTarget("localhost:8081")
.usePlaintext()
.build();
GreetingServiceGrpc.GreetingServiceStub stub = GreetingServiceGrpc.newStub(channel);
StreamObserver<GreetingServiceOuterClass.HelloRequest> requestStream =
stub.greetingWithRequestStream(new StreamObserver<GreetingServiceOuterClass.HelloResponse>() {
@Override
public void onNext(GreetingServiceOuterClass.HelloResponse response) {
System.out.println(response);
}
@Override
public void onError(Throwable t) {
t.printStackTrace();
}
@Override
public void onCompleted() {
}
});
Stream.of("Steve1", "Steve2", "Steve3")
.map(name -> GreetingServiceOuterClass.HelloRequest.newBuilder().setName(name).build())
.forEach(requestStream::onNext);
requestStream.onCompleted();
}).start();
Thread.sleep(10000);
}
}
}
最佳答案
@SpringBootApplication javadoc状态:
This is a convenience annotation that is equivalent to declaring @Configuration, @EnableAutoConfiguration and @ComponentScan.
还有@ComponentScan javadoc状态:
If specific packages are not defined, scanning will occur from the package of the class that declares this annotation.
这意味着默认情况下 @SpringBootApplication 注释会扫描同一包或以下包中的所有类(请参阅 the best practices 有关在 Spring Boot 应用程序中构造代码的信息)。
但是,如果您不想移动类,则可以使用主类上的 @ComponentScan 或 @Import 注释显式导入它们:
@SpringBootApplication
@ComponentScan({"example.client","example.server"})
@Import(GreetingServiceImpl.class)
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
关于java - io.grpc.StatusRuntimeException : UNIMPLEMENTED: Method not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56195738/
从父类(super class)继承抽象方法时,Eclipse IDE 中是否有键盘快捷键可以添加未实现的方法?总是需要点击类名来执行此操作,这有点烦人。谢谢 最佳答案 Ctrl+. 然后 Ctrl1
通过接口(interface)生成一个类后,我需要一个与 Eclipse 的“添加未实现的方法”功能具有相同功能的方法。我搜索了它,但找不到任何东西。有没有什么办法可以使用,比如插件扩展点之类的? 谢
我在尝试运行我的应用程序时遇到以下错误 fatal error :对类“rcresttest.CatalogItem”使用了未实现的初始化程序“init(entity:insertIntoManage
我在这条指令之后创建了一个 grpc 服务器和客户端:https://docs.microsoft.com/en-us/aspnet/core/tutorials/grpc/grpc-start?vi
此代码显示添加未实现的方法时出现错误。 public class Child implements IResponse 但这没有显示错误。 public class Child extends Pa
有人可以向我解释一下这两个代码块之间的区别吗?第一个可以工作,而后者会抛出我在标题中指出的错误。 def login_required(method): @functools.wraps(method
Eclipse 有一个功能“添加未实现的方法”,可以为一个类添加未实现的方法(例如在实现接口(interface)时)。 当 Eclipse 添加方法时,它会按字母顺序添加它们。有没有一种方法可以配置
我在以下行收到主题警告: NSSortDescriptor * sort = [ [NSSortDescriptor alloc] initWithKey:@"name"
基本上我的数据模型中有 3 个实体:Brand、Model 和 Trim。 品牌与称为“模型”的模型具有一对多关系。 (一个品牌有多个型号,但一个型号只有一个品牌) 模型与 Trim 之间存在多对多关
我正在 Windows 10 WSL2 上测试 Rails 项目。我能够运行 rails server没问题,但是当我运行 rails test test/integration , 我得到 NotI
当我运行以下 .Net 代码时: using (var c = Shared.DataSources.BSS1.CreateCommand()) { c.CommandText = "\r\n
我正在使用 Java 开发 Selenium 并使用监听器。 我创建了该类,导入了 TestNG,然后添加了方法; Public class Listener implements ITestList
使用 Springboot 入门应用程序。一切正常。然后我将客户端和服务器移动到新的包中。一切都会编译,但在运行时,当我运行客户端时,我收到错误:未找到未实现的方法。 我检查了该方法确实已实现。当我启
我正在尝试运行 "Alien Shooter" Android/SDL example在我的新Samsung Galaxy Fit .我没有更改任何代码的初始状态。在模拟器上一切正常,但在真实设备上,
我正在开发一个使用 OpenGL 的 Android 应用程序,我想在一个类(渲染器)中添加这些方法以获得场景的两个 View ,即自动立体设备使用的图像: package com.s.cv; imp
如果您正处于 TDD 迭代的中间,您如何知道哪些测试失败是因为现有代码确实不正确,哪些失败是因为测试本身或功能尚未实现?请不要说,“你只是不在乎,因为你必须同时解决这两个问题。”我已经准备好摆脱这种心
我想在我的导航栏上放一张图片和标签,所以我决定这样做: class FixedImageNavigationItem: UINavigationItem { private let fixed
我们正在运行带有连接池的 tomcat 服务器,最近随机出现此错误。当我们随机运行一个包中的存储过程时,就会发生这种情况。我已经尝试自己对问题进行一些研究,这导致了这个 Java 类的来源,我认为错误
我是 iPhone 开发新手。我正在尝试使用 iphone 核心数据存储一些数据。当我尝试保存时,我收到类似错误。 Detected an attempt to call a symbol in sy
所以我有两种不同的方法。 一个是普通方法 void DoSomething(delegate x) { foreach(......) { x(); } } 另一个是部分但未实现的
我是一名优秀的程序员,十分优秀!