使用javax(调用接口)时,Maven在寻找Jersey依赖项

问题描述 投票:0回答:1

我正在尝试创建一个简单的客户端,该客户端可以将get请求发送到给定的url。我正在尝试使用javax工具,但遇到奇怪的行为,无法在任何地方找到答案。

我的代码如下:

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Invocation;
import javax.ws.rs.client.Invocation.Builder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

public static Response processRequest(String url, String method) {
        Client client = ClientBuilder.newClient(); // (Http.java:44)
        WebTarget target = client.target(url);
        Builder builder = target.request();
        builder.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);

        Invocation Invo = builder.buildGet(); 
        Response res = Invo.invoke();

        return res;
    }

您可以看到我正在使用javax.ws.rs.core库,所有相关的依赖项都在pom.xml中

这里很奇怪的问题是,当我执行代码时,它因以下错误而失败-

java.lang.RuntimeException: java.lang.ClassNotFoundException: org.glassfish.jersey.client.JerseyClientBuilder
        at javax.ws.rs.client.ClientBuilder.newBuilder(ClientBuilder.java:110)
        at javax.ws.rs.client.ClientBuilder.newClient(ClientBuilder.java:121)
        at scr.cps.utils.Http.processRequest(Http.java:44)
        at scr.cps.utils.Http.doGet(Http.java:69)
        at scr.cps.Main.main(Main.java:29)
Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.client.JerseyClientBuilder
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:264)
        at javax.ws.rs.client.FactoryFinder.newInstance(FactoryFinder.java:111)
        at javax.ws.rs.client.FactoryFinder.find(FactoryFinder.java:209)
        at javax.ws.rs.client.ClientBuilder.newBuilder(ClientBuilder.java:94)

有人可以帮我理解为什么我从org.glassfish.jersey.client.JerseyClientBuilder清楚地导入时为什么我要寻找import javax.ws.rs.client.ClientBuilder;的原因。我在代码中的任何地方都没有使用球衣

我正在尝试创建一个简单的客户端,该客户端可以将get请求发送到给定的url。我正在尝试使用javax工具,但遇到奇怪的行为,无法在任何地方找到答案。。我的代码看起来...

java maven jersey client jax-rs
1个回答
0
投票

ClientBuilder默认使用泽西岛的JerseyClientBuilder类(显然,您必须使用作为ClientBuilder子类的类),因此正在寻找它。我选择使用ResteasyClient执行我的请求。

© www.soinside.com 2019 - 2024. All rights reserved.