问题标签 [jersey-1.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
199 浏览

eclipse - Restful Web Service 在 Shell 中运行,但不在 Eclipse indigo 中运行,它给出类未找到异常

我正在使用 Eclipse INDIGO、Apache-tomcat-7.0.42 和 jersay 库。我将我的项目作为战争导出到 \apache-tomcat-7.0.42\webapps 文件夹并从 cmd 运行服务器,它不会引发任何异常。但是当我尝试在服务器上运行我的项目时,它给出了以下异常

当我在网络上搜索我的错误时,我在球衣库中发现了一些问题。但我找不到任何解决方案。我添加了这个库。但它给出了同样的错误。

jersey-servlet-1.13-b01.jar

jersey-servlet-1.17.1.jar

jersey-bundle-1.17.1.jar

请帮我....

0 投票
1 回答
11803 浏览

java - 球衣休息和 csv 响应

我创建了一个使用 Jersey 以 CSV 文件响应的休息呼叫。

休息调用代码是:

上面的代码读取在临时位置创建的 csv 文件,并使用 rest 调用响应该 csv。这是完美的工作正常。但现在要求发生了变化。流式传输内存中的文件内容,并从 Rest API 以 csv 格式响应。
我从来没有完成流式传输到内存中的文件并响应 REST 中的内容。

有人可以帮我吗?

提前致谢。

0 投票
1 回答
1500 浏览

jersey - jersey 异常处理程序 - 如何获取错误请求的更多信息

我写了一个非常标准的多部分文件上传宁静服务。当我使用 curl 对其进行测试时,我不断收到 400 个错误请求。结果证明有多种原因,但我总是收到同样的 400 错误请求。例如,我的应用程序服务器的临时目录不存在。我希望在日志中抛出一些较低级别的异常,但我什么也看不到。我对泽西岛不太熟悉,并且正在寻找有关如何处理此问题以仍然返回 400 / 错误请求但以某种方式记录更多信息的任何建议。有任何想法吗?我正在使用球衣 1.x

0 投票
3 回答
2972 浏览

java - 在 Jersey 中,如何处理深度嵌套的复杂对象的 @POST 参数?

我在这里使用 Jersey 1.x,我有一个@POST方法需要发送一个深度嵌套的复杂对象。我不确定我的所有选择,但本文档中似乎描述了很多内容:

通常,方法参数的 Java 类型可能:

  1. 是原始类型;

  2. 有一个接受单个 String 参数的构造函数;

  3. 有一个名为 valueOf 或 fromString 的静态方法,它接受单个 String 参数(例如,参见 Integer.valueOf(String) 和 java.util.UUID.fromString(String));或者

  4. 是 List、Set 或 SortedSet,其中 T 满足上述 2 或 3。生成的集合是只读的。

理想情况下,我希望我可以定义这样的方法:

但我想我只能在我的对象满足上述要求的情况下这样做(在我的情况下,它不满足)。在我看来,我有一个选择。

选项 1:实施fromString

实施上述第 3 项。

选项 2:通过在complexObject

分解complexObject成碎片,使参数变为:

LessComplexPiece如果不满足上述要求,这可能还不够。我想知道这里最好的选择是什么。人们在这种情况下通常会做什么?以下是我能想到的优点和缺点:

实施的缺点fromString

  • 必须维护一个自定义的反序列化器。每次修改类时,此反序列化器都可能会中断。一般来说,错误的风险更大。
  • 可能无法生成描述复杂对象各个部分的文档。我得亲手写。
  • 对于复杂对象的每一部分,我都必须编写自己的转换和验证逻辑。
  • 我不确定发布数据会是什么样子。但是,这可能会使某人很难从网页表单中调用 API。如果资源接受原语,那将很容易。例如:complexObject=seralizedString对比firstName=JohnlastName=Smith
  • 您可能由于各种原因无法修改课程(谢天谢地,这对我来说不是限制)

实施的优点fromString

  • 这可以避免使用大量参数的方法。这将使 API 的使用变得不那么令人生畏。
  • 这个论点处于我想在我的方法主体中工作的抽象级别:
  • 我不必手动将这些部分组合在一起(从技术上讲,我会的,它只需要在解串器方法中)
  • 反序列化器可以是一个使过程自动化的库(XStream、gensen 等)并为我节省大量时间。这可以减轻错误风险。
  • 如果您将对象展平以发送多个碎片,则可能会遇到“命名空间”冲突。例如,想象一下发送一个Employee. 如果他有 a Boss,您现在必须提供 aEmployeeFirstName和 a BossFirstName。如果您只是反序列化一个对象,您可以适当地嵌套数据,而不必在参数名称中包含上下文。

那么我应该选择哪个选项?有没有我不知道的第三种选择?

0 投票
1 回答
2482 浏览

rest - 如何使用 JAXB 使用 Jersey 1.17.1 生成 JSON 输出

这个问题已经在这个网站上有一个正确的答案。问题是问题是针对 Jersey 1.6的,而Jersey 1.17.1 的正确答案被埋在底部。我想我会为这个答案创建一个正确的问题,这样就可以更容易地为那些在这个问题上苦苦挣扎的人找到帮助(就像我一样)。

0 投票
1 回答
3342 浏览

java - jersey 客户端可以使用 JSON 将 JAXB 对象发布到服务器吗?

我找到了很多关于如何设置球衣服务器以便它可以生成和使用 JAXB 绑定对象的示例,但是我很难找到如何让客户端发布相同的 JAXB 绑定对象的示例。 这个例子展示了如何使用 XML 来做这件事。我正在寻找一个展示如何使用 JSON 来做到这一点的工具。

我什至不确定这是否可行。post方法上的 javadoc不明确。

我的帖子是这样的:

当我尝试这个时,我的服务器会收到请求,但字段@FormParam总是作为 null 发送过来的。这是我的服务器端方法的签名:

我想知道的其他事情是我是否应该使用instanceWithXmlRootElementAnnotation. 如果这是一个传统的 Web 服务,我会使用 JAXB生成一个对象供客户端使用并通过生成的类发送。但是根据我从链接到的示例中收集到的信息,这个人发送的是源代码,而不是生成的类。

0 投票
4 回答
3750 浏览

java - 如何为使用 JSON JAXB 绑定的 Jersey REST API 生成文档?

现在我已经知道如何使用 JAXB 生成 JSON,我可以在我的服务器上请求/响应它,我想弄清楚如何为不使用 Java 的人生成有用的文档。我的服务器代码如下所示:

如果有人使用 Java,那就太好了。我只是给他们一个带有InstanceWithXmlRootElementAnnotation类的 Jar 并告诉他们发送它(是的,还有一些工作,忽略这些细节)。

如果他们使用其他语言,我不知道我应该如何告诉他们有效负载的格式以及如果服务器返回InstanceWithXmlRootElementAnnotation. 如何生成解释 JSON 有效负载预期格式的文档?

0 投票
4 回答
1820 浏览

java - 如何抑制 Jersey 自动抛出的 Jersey 异常?

我在 JAVA 中将 Jersey 1.14 用于 REST。如果资源的 POST 正文中有任何错误,Jersey 会抛出异常,向客户端提及我的内部类。当错误从我的应用程序传递时,我继续希望给他们错误,但抑制 Jersey 抛出的错误(对于甚至没有到达我的应用程序的请求,因为 Jersey 识别异常并抛出它)。我搜索了任何标志来实现这一点,但找不到任何东西。有没有办法做到这一点?

编辑:改写问题:静音/抑制球衣中无效输入的错误堆栈跟踪

更新:我尝试使用 ExceptionMapper,捕获 java.lang.Exception。它会像缺少 Content-Type 一样捕获异常,但在对象转换出错时无法捕获异常。

0 投票
1 回答
1160 浏览

javascript - javascript中无法使用的球衣休息服务的JSON输入/输出

我喜欢用 xml 和 json 输入和输出构建一个休息服务。xml 输出应该有效并使用命名空间在 xsd 模式中定义。使用 xml 服务运行良好。对于 json,我还没有找到实现一致输入和输出的解决方案。为了说明我的问题,我做了一个小例子。我创建了两个带有 jaxb 注释 Parent 和 Child 的类。父对象有一个 @XmlAttribute 和一个子对象列表。其余服务可以生成两个示例父对象。一个例子包括一个孩子,另一个例子有两个孩子。因为具有一个或多个成员的列表的符号之间存在一些差异。此外,该服务有一个@POST 方法,它接收一个父对象并直接返回它。我的假设是将生成的 json 文本放入 post 方法并获得与以前相同的符号。但这不适用于大多数情况。

我的休息服务:

家长

}

孩子

Parent+Child 包中的 package-info.java 来定义命名空间。

自定义上下文解析器

休息应用程序,包括自定义上下文解析器

没有自定义上下文解析器的测试结果(应用程序中的注释):

使用自然符号测试结果(我喜欢使用这种符号)

使用映射表示法且没有命名空间映射的测试结果

带有映射符号的测试结果

哇,它有效。但是我不喜欢在 javascript 中使用这种表示法。命名空间前缀被合并到属性名称中。在访问嵌套元素时,这对于在 javascript 客户端中硬编码前缀不是很有用。前缀名称可能会改变!使用抛弃符号,它看起来比之前的例子更糟糕。

很长的故事,但一个简单的问题。有人有解决方案来接收 json 自然符号并能够将相同的符号发送到球衣休息服务吗?

0 投票
2 回答
1380 浏览

java - Jersey:有没有一种干净的方法来指定允许的 URL 扩展?

我正在使用 Jersey 1.17.1,并且在我创建的每个 URL 上,我都希望允许人们将“.json”放在末尾或不放。这是我所做的一个例子:

最终我会让他们在“.json”或“.xml”之间做出选择,我担心我在这里违反 DRY。我将不得不将每个 @Path 更改为此:

有没有更好的方法可以让我的路径值更可重用?虽然我不能使用 Jersey 2.0,但我很想知道它是否可以解决这个问题。