问题标签 [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.
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
请帮我....
java - 球衣休息和 csv 响应
我创建了一个使用 Jersey 以 CSV 文件响应的休息呼叫。
休息调用代码是:
上面的代码读取在临时位置创建的 csv 文件,并使用 rest 调用响应该 csv。这是完美的工作正常。但现在要求发生了变化。流式传输内存中的文件内容,并从 Rest API 以 csv 格式响应。
我从来没有完成流式传输到内存中的文件并响应 REST 中的内容。
有人可以帮我吗?
提前致谢。
jersey - jersey 异常处理程序 - 如何获取错误请求的更多信息
我写了一个非常标准的多部分文件上传宁静服务。当我使用 curl 对其进行测试时,我不断收到 400 个错误请求。结果证明有多种原因,但我总是收到同样的 400 错误请求。例如,我的应用程序服务器的临时目录不存在。我希望在日志中抛出一些较低级别的异常,但我什么也看不到。我对泽西岛不太熟悉,并且正在寻找有关如何处理此问题以仍然返回 400 / 错误请求但以某种方式记录更多信息的任何建议。有任何想法吗?我正在使用球衣 1.x
java - 在 Jersey 中,如何处理深度嵌套的复杂对象的 @POST 参数?
我在这里使用 Jersey 1.x,我有一个@POST
方法需要发送一个深度嵌套的复杂对象。我不确定我的所有选择,但本文档中似乎描述了很多内容:
通常,方法参数的 Java 类型可能:
是原始类型;
有一个接受单个 String 参数的构造函数;
有一个名为 valueOf 或 fromString 的静态方法,它接受单个 String 参数(例如,参见 Integer.valueOf(String) 和 java.util.UUID.fromString(String));或者
是 List、Set 或 SortedSet,其中 T 满足上述 2 或 3。生成的集合是只读的。
理想情况下,我希望我可以定义这样的方法:
但我想我只能在我的对象满足上述要求的情况下这样做(在我的情况下,它不满足)。在我看来,我有一个选择。
选项 1:实施fromString
实施上述第 3 项。
选项 2:通过在complexObject
件
分解complexObject
成碎片,使参数变为:
LessComplexPiece
如果不满足上述要求,这可能还不够。我想知道这里最好的选择是什么。人们在这种情况下通常会做什么?以下是我能想到的优点和缺点:
实施的缺点fromString
- 必须维护一个自定义的反序列化器。每次修改类时,此反序列化器都可能会中断。一般来说,错误的风险更大。
- 可能无法生成描述复杂对象各个部分的文档。我得亲手写。
- 对于复杂对象的每一部分,我都必须编写自己的转换和验证逻辑。
- 我不确定发布数据会是什么样子。但是,这可能会使某人很难从网页表单中调用 API。如果资源接受原语,那将很容易。例如:
complexObject=seralizedString
对比firstName=John
和lastName=Smith
- 您可能由于各种原因无法修改课程(谢天谢地,这对我来说不是限制)
实施的优点fromString
- 这可以避免使用大量参数的方法。这将使 API 的使用变得不那么令人生畏。
- 这个论点处于我想在我的方法主体中工作的抽象级别:
- 我不必手动将这些部分组合在一起(从技术上讲,我会的,它只需要在解串器方法中)
- 反序列化器可以是一个使过程自动化的库(XStream、gensen 等)并为我节省大量时间。这可以减轻错误风险。
- 如果您将对象展平以发送多个碎片,则可能会遇到“命名空间”冲突。例如,想象一下发送一个
Employee
. 如果他有 aBoss
,您现在必须提供 aEmployeeFirstName
和 aBossFirstName
。如果您只是反序列化一个对象,您可以适当地嵌套数据,而不必在参数名称中包含上下文。
那么我应该选择哪个选项?有没有我不知道的第三种选择?
rest - 如何使用 JAXB 使用 Jersey 1.17.1 生成 JSON 输出
这个问题已经在这个网站上有一个正确的答案。问题是问题是针对 Jersey 1.6的,而Jersey 1.17.1 的正确答案被埋在底部。我想我会为这个答案创建一个正确的问题,这样就可以更容易地为那些在这个问题上苦苦挣扎的人找到帮助(就像我一样)。
java - jersey 客户端可以使用 JSON 将 JAXB 对象发布到服务器吗?
我找到了很多关于如何设置球衣服务器以便它可以生成和使用 JAXB 绑定对象的示例,但是我很难找到如何让客户端发布相同的 JAXB 绑定对象的示例。 这个例子展示了如何使用 XML 来做这件事。我正在寻找一个展示如何使用 JSON 来做到这一点的工具。
我什至不确定这是否可行。post方法上的 javadoc不明确。
我的帖子是这样的:
当我尝试这个时,我的服务器会收到请求,但字段@FormParam
总是作为 null 发送过来的。这是我的服务器端方法的签名:
我想知道的其他事情是我是否应该使用instanceWithXmlRootElementAnnotation
. 如果这是一个传统的 Web 服务,我会使用 JAXB生成一个对象供客户端使用并通过生成的类发送。但是根据我从链接到的示例中收集到的信息,这个人发送的是源代码,而不是生成的类。
java - 如何为使用 JSON JAXB 绑定的 Jersey REST API 生成文档?
现在我已经知道如何使用 JAXB 生成 JSON,我可以在我的服务器上请求/响应它,我想弄清楚如何为不使用 Java 的人生成有用的文档。我的服务器代码如下所示:
如果有人使用 Java,那就太好了。我只是给他们一个带有InstanceWithXmlRootElementAnnotation
类的 Jar 并告诉他们发送它(是的,还有一些工作,忽略这些细节)。
如果他们使用其他语言,我不知道我应该如何告诉他们有效负载的格式以及如果服务器返回InstanceWithXmlRootElementAnnotation
. 如何生成解释 JSON 有效负载预期格式的文档?
java - 如何抑制 Jersey 自动抛出的 Jersey 异常?
我在 JAVA 中将 Jersey 1.14 用于 REST。如果资源的 POST 正文中有任何错误,Jersey 会抛出异常,向客户端提及我的内部类。当错误从我的应用程序传递时,我继续希望给他们错误,但抑制 Jersey 抛出的错误(对于甚至没有到达我的应用程序的请求,因为 Jersey 识别异常并抛出它)。我搜索了任何标志来实现这一点,但找不到任何东西。有没有办法做到这一点?
编辑:改写问题:静音/抑制球衣中无效输入的错误堆栈跟踪
更新:我尝试使用 ExceptionMapper,捕获 java.lang.Exception。它会像缺少 Content-Type 一样捕获异常,但在对象转换出错时无法捕获异常。
javascript - javascript中无法使用的球衣休息服务的JSON输入/输出
我喜欢用 xml 和 json 输入和输出构建一个休息服务。xml 输出应该有效并使用命名空间在 xsd 模式中定义。使用 xml 服务运行良好。对于 json,我还没有找到实现一致输入和输出的解决方案。为了说明我的问题,我做了一个小例子。我创建了两个带有 jaxb 注释 Parent 和 Child 的类。父对象有一个 @XmlAttribute 和一个子对象列表。其余服务可以生成两个示例父对象。一个例子包括一个孩子,另一个例子有两个孩子。因为具有一个或多个成员的列表的符号之间存在一些差异。此外,该服务有一个@POST 方法,它接收一个父对象并直接返回它。我的假设是将生成的 json 文本放入 post 方法并获得与以前相同的符号。但这不适用于大多数情况。
我的休息服务:
家长
}
孩子
Parent+Child 包中的 package-info.java 来定义命名空间。
自定义上下文解析器
休息应用程序,包括自定义上下文解析器
没有自定义上下文解析器的测试结果(应用程序中的注释):
使用自然符号测试结果(我喜欢使用这种符号)
使用映射表示法且没有命名空间映射的测试结果
带有映射符号的测试结果
哇,它有效。但是我不喜欢在 javascript 中使用这种表示法。命名空间前缀被合并到属性名称中。在访问嵌套元素时,这对于在 javascript 客户端中硬编码前缀不是很有用。前缀名称可能会改变!使用抛弃符号,它看起来比之前的例子更糟糕。
很长的故事,但一个简单的问题。有人有解决方案来接收 json 自然符号并能够将相同的符号发送到球衣休息服务吗?
java - Jersey:有没有一种干净的方法来指定允许的 URL 扩展?
我正在使用 Jersey 1.17.1,并且在我创建的每个 URL 上,我都希望允许人们将“.json”放在末尾或不放。这是我所做的一个例子:
最终我会让他们在“.json”或“.xml”之间做出选择,我担心我在这里违反 DRY。我将不得不将每个 @Path 更改为此:
有没有更好的方法可以让我的路径值更可重用?虽然我不能使用 Jersey 2.0,但我很想知道它是否可以解决这个问题。