ClassNotFoundException:javax.ws.rs.client.ClientBuilder

2024-03-21

我正在尝试从 Web 应用程序(eclispe 中的动态 Web 应用程序)使用 Jersey Rest 服务,如下所示:

Client client = ClientBuilder.newBuilder().build(); // Here is the error

WebTarget target = client.target("url/rest").path("List");

String result = target.request(MediaType.TEXT_PLAIN).get(String.class);

在 ClientBuilder.newBuilder() 行中调试时,系统会抛出 ClassNotFoundException: javax.ws.rs.client.ClientBuilder 错误,但相同的代码在 java 项目中运行完美。

完整轨迹:

javax.servlet.ServletException: Error instanciando clase de servlet test
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:526)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:655)
    org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Unknown Source)
causa raíz

java.lang.NoClassDefFoundError: javax/ws/rs/client/ClientBuilder
    test.<init>(test.java:27)
    sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    java.lang.reflect.Constructor.newInstance(Unknown Source)
    java.lang.Class.newInstance(Unknown Source)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:526)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:655)
    org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Unknown Source)
causa raíz

java.lang.ClassNotFoundException: javax.ws.rs.client.ClientBuilder
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1324)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1177)
    test.<init>(test.java:27)
    sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    java.lang.reflect.Constructor.newInstance(Unknown Source)
    java.lang.Class.newInstance(Unknown Source)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:526)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:655)
    org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Unknown Source)

所以它来了;)

首先来了解一下: javax.ws.rs.client 是 RESTFul 客户端实现的标准包。开发人员应该针对此接口进行编程。 在运行时,您需要在类路径中实现此接口。这就是 Resteasy 或 Jersey 等项目的用武之地。

第二: 在 Eclipse 中,构建路径和类路径设置仅影响 Eclipse 中的环境。当你手动把一些东西放在那里时,它只存在于 Eclipse 中。

第三: 当您根据 Java EE Webprofile 开发 Web 应用程序时,您可以自动访问应用程序服务器的所有捆绑包,例如 tomcat 或 jboss。 如果您的应用程序使用更多包,您必须将它们与您的应用程序一起分发。为此,您可以将第三方 jar 放在项目中的“WEB-INF/libs”下。当它部署到应用程序服务器时,此文件夹中的 jar 会自动放置在应用程序的类路径中。

第四(关于你的解决方案): 将第三方库放入应用程序服务器库或认可的直接目录中,使部署在此应用程序服务器上的所有应用程序都可以访问它们,并增加应用程序服务器设置和维护的复杂性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ClassNotFoundException:javax.ws.rs.client.ClientBuilder 的相关文章

随机推荐

  • 如何在 VB 6 中检查对象的类型? - 我不想使用“TypeOf”方法

    如何在 VB 6 0 中检查对象的类型 我们必须修改现有代码以使用 typeof 方法 是否有任何方法 例如将光标移动到对象变量上或像快速监视那样可以看到其类型 我知道以下方法 但我不想使用它 Set fs New Scripting Fi
  • 向 MultiIndex DataFrame 添加一个空行

    正如标题所暗示的 我想在我的MultiIndex DataFrame 第一级索引需要有一个定义的索引值 第二级索引需要是np nan 列中的值需要是np nan 考虑以下 import pandas as pd import numpy a
  • PyUsb USB 条码扫描器

    我正在尝试在 Ubuntu 中使用 Honeywell USB 3310g 扫描仪从条形码或 qrcode 输出字符串 我有 libusb 和一个名为 Metro usb 的库 http gitorious org other metro
  • Scheme/Racket有枚举操作吗?

    Scheme Racket 是否有相当于 Haskell 中的 a b 表示法的枚举表示法 在 Haskell 中 1 5 计算结果为列表 1 2 3 4 5 for list i in range 1 6 i sequence gt li
  • Spark流式批量查找数据

    我需要从 HDFS 上的文件查找 Spark 流作业中的一些数据 该数据由批处理作业每天获取一次 有没有 设计模式 为了这样的任务 如何在执行后立即重新加载内存中的数据 哈希图 每日更新 当查找数据时 如何连续服务流作业被抓取 一种可能的方
  • 电子如何创建增量文件

    I use electron builder构建我的应用程序并成功构建第一个版本 其中包含三个输出 foosetup exe foo 0 0 1 full nupkg 和 RELEASES 现在我想实现自动更新 并且我已经部署了后端服务通过
  • Scala 中语法糖的所有实例是什么?

    Scala 中语法糖的所有实例是什么 它们很难搜索 因为大多数 全部都是纯粹的符号 因此在不知道概念名称的情况下很难搜索 TODO 隐式转换 匿名函数的语法 其他我忘记的事情 Basics a b相当于a b a b c相当于a b c 除
  • 如何在 PHP / XAMPP 中启用 cURL

    如何在 PHP 中启用 cURL On Debian http en wikipedia org wiki Debian with Apache http en wikipedia org wiki Apache HTTP Server 2
  • 使用按钮在 Chart.js 中切换图表

    我是一名初学者开发人员 我一直在尝试使用 ChartJS 将一些数据显示到屏幕上 我希望能够单击一个按钮来生成另一组新的数据 轴 我一直在尝试遵循其他堆栈溢出答案 但似乎没有一个对我有用 请参见下文
  • 在 R 中操作变量以生成新数据集

    我是一个相对较新的 R 用户 如果对我的数据集有任何帮助 我真的很感激 我有一个包含 2400 万行的数据集 数据集中有 3 个变量 患者姓名 药房名称以及该次就诊时从药房领取的药物数量 有些患者多次出现在数据集中 即他们在不同时间点从不同
  • 如何在 dart/Flutter 中使用 Firebase 快照字典上的 SplayTreeMap?

    我已成功通过 StreamBuilder 取回数据并需要对其进行排序 如何按键对快照数据的映射进行排序 另外 如果你给出一个这样做的例子 我的价值也会有所帮助 我想我想做一个 SplayTreeMap 但如果有更好的方法请提供 这是我的字典
  • Knife Bootstrap 的 Chef 节点配置问题 - 无法通过服务器进行身份验证

    我正在尝试使用 Knife Bootstrap 设置厨师客户端节点 knife bootstrap nodename x user P passwd sudo 收到以下错误消息 Chef 在尝试创建客户端 nodename url com
  • JAXB - 如何序列化集合子类中的字段

    我在序列化我的类 ArrayList 的子类 中的字段时遇到问题 添加到列表中的项目已序列化 但字段未序列化 XmlRootElement public static class NumberedList extends ArrayList
  • 以编程方式将 SurfaceView 添加到在 ImageView 下按 Z 顺序排列的 FrameLayout

    编辑2a 随意跳到底部询问简洁的问题 I can 通过xml绘制SurfaceView https stackoverflow com questions 5203547 draw surfaceview from layout xml 就
  • UtteranceProgressListener 不会调用函数

    我正在尝试制作一个语音驱动的应用程序 但是我遇到了一个主要问题 My UtteranceProgressListener无论我将 Speak 方法放在哪里 类都不会调用任何给定的方法 这是我的代码 这是我的 OnCreate 方法 prot
  • Swift:将 AsyncStream 映射到另一个 AsyncStream

    Update 接受的答案没有直接回答原来的问题 但帮助解决了我试图解决的根本问题 我想将 AsyncStream 这是一个 AsyncSequence 映射到另一个元素类型为 T2 的 AsyncSequence 中 我在中添加了一些细节这
  • 检测文件上传需要多长时间(PHP)

    是否可以知道 服务器端 文件上传所需的时间 我有一个图像上传 API 在我的响应中我想返回上传时间 不包括脚本执行时间 我想是的 有 SERVER REQUEST TIME 指示 HTTP 请求开始的变量 因此在脚本的一开始 upload
  • 如何从 Windows 应用商店应用程序中的视频获取缩略图?

    我目前正在开发一个具有录制视频功能的应用程序 我知道如何录制视频并将其保存在localFolder应用程序的 我的问题是我需要在用户录制视频后向他显示缩略图 因此 为此我想从录制的视频中提取第一帧 最终视频存储在StorageFile对象
  • Debiansources.list.d 与sources.list

    简单的问题 我在谷歌搜索时还没有找到解释 相对于sources list sources list d 的用途是什么 什么是d代表 我知道sources list包含debian可以下载软件的存储库的链接 虽然谷歌可以找到大量信息 但您不需
  • ClassNotFoundException:javax.ws.rs.client.ClientBuilder

    我正在尝试从 Web 应用程序 eclispe 中的动态 Web 应用程序 使用 Jersey Rest 服务 如下所示 Client client ClientBuilder newBuilder build Here is the er