mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-09-02 08:57:29 +02:00
Cannot load multiple gRPC definitions #667
Closed
opened 2025-12-29 15:30:23 +01:00 by adam
·
11 comments
No Branch/Tag Specified
master
1341-mapping-json
stef-aspire-tests-updates
bug/973-TinyMapper
bug/1149-AppendGuidToSavedMappingFile
feature/1150-DockerImageVersion
61
stef-1108
stef-1097
stef-1083-MessageOptions_Type_Conflict
stef-1062-logger
stef-IgnoreOpenApiErrors
stef-928-TypeLoadException-FluentAssertions-net472
nunit
stef-849
stef-847-regex-questionmark
http_verb
WireMockServerContext
webapp
ai
CommandLineArgumentsParser
2.15.0
2.14.0
2.13.0
2.12.0
2.11.0
2.10.0
2.9.0
2.8.0
2.7.0
2.6.0
2.5.0
2.4.0
2.3.0
2.2.0
2.1.0
2.0.0
1.25.0
1.24.0
1.23.0
1.22.0
1.21.0
1.20.0
1.19.0
1.18.0
1.17.0
1.16.0
1.15.0
1.14.0
1.13.0
1.12.0
1.11.2
1.11.0
1.10.1
1.10.0
1.9.1
1.9.0
1.8.18
1.8.17
1.8.16
1.8.15
1.8.14
1.8.13
1.8.12
1.8.11
1.8.10
1.8.9
1.8.8
1.8.7
1.8.6
1.8.5
1.8.3
1.8.2
1.8.1
1.8.0
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.12
1.6.11
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.62
1.5.61
1.5.60
1.5.59
1.5.58
1.5.57
1.5.56
1.5.55
1.5.54
1.5.53
1.5.52
1.5.51
1.5.50
1.5.49
1.5.48
1.5.47
1.5.46
1.5.45
1.5.44
1.5.43
1.5.42
1.5.41
1.5.40
1.5.39
1.5.38
1.5.37
1.5.36
1.5.35
1.5.34
1.5.33
1.5.32
1.5.31
1.5.30
1.5.29
1.5.28
1.5.27
1.5.26
1.5.25
1.5.24
1.5.23
1.5.22
1.5.21
1.5.20
1.5.19
1.5.18
1.5.17
1.5.16
1.5.15
1.5.14
1.5.13
1.5.12
1.5.11
1.5.10
1.5.9
1.5.8
1.5.7
1.5.6
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.43
1.4.42
1.4.41
1.4.40
1.4.39
1.4.38
1.4.37
1.4.36
1.4.35
1.4.34
1.4.33
1.4.32
1.4.31
1.4.30
1.4.29
1.4.28
1.4.27
1.4.26
1.4.25
1.4.24
1.4.23
1.4.22
1.4.21
1.4.20
1.4.19
1.4.18
1.4.17
1.4.16
1.4.15
1.4.14
1.4.13
1.4.12
1.4.11
1.4.10
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.10
1.3.9
1.3.8
1.3.6
1.3.5
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.18
1.2.17
1.2.16
1.2.15
1.2.14
1.2.13
1.2.12
1.2.11.0
1.2.10
1.2.9.0
1.2.8.0
1.2.7.0
1.2.6.0
1.2.5.0
1.2.4.0
1.2.3.0
1.2.2.0
1.2.1.0
1.2.0.0
1.1.10
1.1.9.0
1.1.8.0
1.1.7.0
1.1.6.0
1.1.5.0
1.1.3.0
1.1.2.0
1.1.1.0
1.1.0.0
1.0.43.0
1.0.42.0
1.0.41.0
1.0.40.0
1.0.39.0
1.0.38.0
1.0.37.0
1.0.36.0
1.0.35.0
1.0.34.0
1.0.33.0
1.0.32.0
1.0.31.0
1.0.29.0
1.0.28.0
1.0.25.0
1.0.24.0
1.0.23.0
1.0.22.0
1.0.21.0
1.0.20.0
1.0.19.0
1.0.18.0
1.0.17.0
1.0.16.0
1.0.15.0
1.0.14.0
1.0.13.0
1.0.12.0
1.0.11.0
1.0.10.0
1.0.9.0
1.0.8.0
1.0.7.0
1.0.6.1
1.0.6
1.0.5
1.0.4.21
1.0.4.20
1.0.4.19
1.0.4.18
1.0.4.17
1.0.4.16
1.0.4.15
1.0.4.14
1.0.4.13
1.0.4.12
1.0.4.11
1.0.4.10
1.0.4.9
1.0.4.8
1.0.4.7
1.0.4.6
1.0.4.5
1.0.4.4
1.0.4.3
1.0.4.2
1.0.4.1
1.0.4.0
1.0.3.20
1.0.3.19
1.0.3.18
1.0.3.17
1.0.3.16
1.0.3.15
1.0.3.14
1.0.3.13
1.0.3.12
1.0.3.11
1.0.3.10
1.0.3.9
1.0.3.8
1.0.3.7
1.0.3.6
1.0.3.5
1.0.3.4
1.0.3.3
1.0.3.2
1.0.3.1
1.0.3.0
1.0.2.13
1.0.2.12
1.0.2.11
1.0.2.10
1.0.2.9
1.0.2.8
1.0.2.7
1.0.2.6
1.0.2.5
1.0.2.4
1.0.2.1
1.0.2.0
1.0.1.5
1.0.1.3
1.0.1.2
1.0.1.1
1.0.0.0
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
adam (Adam Melkus)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/WireMock.Net-wiremock#667
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @tuncancn on GitHub (Jan 31, 2025).
Originally assigned to: @StefH on GitHub.
It works fine if I add single greet.proto file definition. But if I split the proto file to 2 files, request.proto and greet.proto, the former has HelloRequest definition only.
I always get 404 error.
Stack Trace:
Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
Task`1.GetResultCore(Boolean waitCompletionNotification)
GrpcMockTest.MultipleProtoTest() line 83
RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
--RpcException
@StefH commented on GitHub (Jan 31, 2025):
Can you please provide the complete code?
@tuncancn commented on GitHub (Jan 31, 2025):
Hi Stef, please see the souce code below.
Proto file, request.proto
Proto file, greet.proto
@StefH commented on GitHub (Jan 31, 2025):
What if you switch?
So
@tuncancn commented on GitHub (Feb 1, 2025):
Still not working, same error.
After I debugged into WireMock.Net source code, I can see it's trying to solve the request object type from first proto definition in ProtoBufMatcher.DecodeAsync(byte[]? input, bool throwException, CancellationToken cancellationToken). So I have to put the request definition in the front of the definition array.
Unfortunately, my response is not defined in the same proto as request object, ProtoBufUtils.GetProtoBufMessageWithHeaderAsync(...) tries to get the response type from the first proto definition again.
@StefH commented on GitHub (Feb 1, 2025):
@tuncancn
It's a bit more complicated, sorry for that.
1.
You need the main proto file as first item (
protoDefinitionText)2.
You need to add a comment to the request proto file, so that WireMock.Net knows how to resolve.
Can you try that?
@StefH commented on GitHub (Feb 1, 2025):
https://github.com/WireMock-Net/WireMock.Net/pull/1252
@tuncancn commented on GitHub (Feb 1, 2025):
It works!!! Thank you, Stef!
I have another question, how should I return an Any type in the response object.
For example, I split the response object to a new proto, changed the content like this.
Added a generic class for converting other types to Any.
When I response the object like this, I always get an exception "{"No serializer for type System.Object is available for model (default)"}", I'm not sure what value I should set to AnyData in the anonymous initializer.
Here is the json content in debug view:
And if I need to return repeated Any values, what should I do?
@StefH commented on GitHub (Feb 1, 2025):
Any
For any, the object/json should look like something like this:
See also:
https://github.com/StefH/ProtoBufJsonConverter/blob/main/test/ProtoBufJsonConverterTests/ConverterTests.cs#L741
Repeated
I don't have an example or test for that...
@tuncancn commented on GitHub (Feb 1, 2025):
Yeah, I tried to conver the anonymous class to the text in the sample.
But I don't know how to specify the type for my custom class Greet.Response.Transaction, not predefined Protobuf types.
@StefH commented on GitHub (Feb 1, 2025):
The ProtoBufJsonConverter does not support anything else "type.googleapis.com" yet... I need to check if I can add this logic.
@tuncancn commented on GitHub (Feb 3, 2025):
Thank you, Stef!