首页 > 解决方案 > 未找到由接口定义的代理类

问题描述

当我尝试使用awssdk中的功能时突然发生此错误。

完整的错误日志是:

com.oracle.svm.core.jdk.UnsupportedFeatureError: Proxy class defined by interfaces [interface 
org.apache.http.conn.HttpClientConnectionManager, interface org.apache.http.pool.ConnPoolControl, interface com.amazonaws.http.conn.Wrapped] not found. 
Generating proxy classes at runtime is not supported. Proxy classes need to be defined at 
image build time by specifying the list of interfaces that they implement. To define proxy 
classes use -H:DynamicProxyConfigurationFiles=<comma-separated-config-files> and - 
H:DynamicProxyConfigurationResources=<comma-separated-config-resources> options.
Error id 9c0a59d0-dd65-4156-8c8b-33d46676e1c3-62

我遵循了一些说明并在src/main/resource/dynamic-proxy.json中创建了自定义代理配置:

[ 
  ["org.apache.http.conn.HttpClientConnectionManager", "org.apache.http.pool.ConnPoolControl","com.amazonaws.http.conn.Wrapped"]
]

并在src/main/resource/application.yaml中定义它:

quarkus:
  native:
    additional-build-args: -H:ReflectionConfigurationFiles=reflect-config.json,-H:DynamicProxyConfigurationResources=dynamic-proxy.json

但是代码根本不起作用。你能指出我错过了什么吗?非常感谢!

标签: javaquarkus

解决方案


我在使用newProxyInstance时遇到了同样的问题,它适用于我添加以下两个参数

文档

https://www.graalvm.org/22.0/reference-manual/native-image/DynamicProxy/

-H:DynamicProxyConfigurationFiles=动态代理.json

-H:DynamicProxyConfigurationResources=动态代理.json

application.properties中的示例

additional-build-args: -H:ReflectionConfigurationFiles=reflect-config.json,-H:DynamicProxyConfigurationFiles=dynamic-proxy.json,-H:DynamicProxyConfigurationResources=dynamic-proxy.json

推荐阅读