java.lang.NoSuchMethodError: 由 JerseyClientBuilder 引起

问题描述

pom.xml 依赖

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-client</artifactId>
    </dependency>
<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet</artifactId>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.connectors</groupId>
    <artifactId>jersey-apache-connector</artifactId>
</dependency>

使用 Jersey 2.33 版本和 javax.ws.rs-api 版本 2.1.1 jars 和下面的示例代码,我试图调用

new JerseyClientBuilder()
        .withConfig(clientConfig)
        .executorService(executorService)

并低于错误

引起:java.lang.NoSuchMethodError: org.glassfish.jersey.client.JerseyClientBuilder.executorService(Ljava/util/concurrent/ExecutorService;)Ljavax/ws/rs/client/ClientBuilder;

@ApplicationScoped
public class SimpleHttpClient {
    
    @Resource 
    private ManagedExecutorService executorService;

    @Override
    public ClientBuilder newHttpClientBuilder(ClientSettings settings) {
        ClientConfig configuration = new ClientConfig();
        configuration.property(ClientProperties.CONNECT_TIMEOUT,TimeUnit.MILLISECONDS);
        configuration.property(ClientProperties.READ_TIMEOUT,TimeUnit.MILLISECONDS);

        PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
        connectionManager.setMaxTotal(settings.getConnectionPoolSize());
        connectionManager.setDefaultMaxPerRoute(50);
        configuration.property(ApacheClientProperties.CONNECTION_MANAGER,connectionManager);
        configuration.connectorProvider(new ApacheConnectorProvider());
        return new JerseyClientBuilder().withConfig(configuration).executorService(executorService);

    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)