我使用Jersey和Guice作为IOC容器。我想知道是否可以将ExceptionMapper与特定URI相关联。这样做的原因是,我希望根据访问的URI对同一异常进行不同的映射。例如,假设我的自定义异常有以下两个异常映射器:
public class MyExceptionMapperForFirstURI implements
ExceptionMapper<MyException> {..return response based on first URI..}
publi
我如何注册一个catch-allexceptionapper,它不拦截WebApplicationException,Jersey为其提供特殊处理
更新:我提交了此功能请求:看看它在课堂上是如何完成的。您不需要注册一个异常apper来捕获Jersey未捕获的所有异常。相反,您让它们冒泡到Servlet容器(例如Tomcat),容器将它们转发到正确的Servlet进行进一步处理
ExceptionMapper的主要和唯一目的是将特定于业务的异常转换为HTTP响应。换句话说,让应用程序控制异常事件流
我将我的项目添加到maven jersey rest服务依赖项中。它工作得很好,但是如果我尝试部署WebLogic11g,就会出现这个错误
[HTTP:101216]Servlet:“jersey serlvet”无法在Web应用程序“PstnIptalv1.war”中启动时预加载。java.lang.LinkageError:加载程序约束冲突:在解析引用类的类加载程序(weblogic/utils/classloaders/ChangeAwareClassLoader的实例)字段“DATETI
标签: Jersey
dropwizardjava.util.logging
我添加了这一行
environment.jersey().register(new LoggingFeature(Logger
.getLogger(LoggingFeature.class.getName()), Level.OFF,
LoggingFeature.Verbosity.PAYLOAD_TEXT, null));
在我的运行(配置,环境)方法中查看和
只有当级别设置为关闭并且我的所有请求/响应消息都记录为错误时,我才会在日志中获取内容,但为什么会出
我正在尝试使用jersey客户端测试post请求,尽管我将头设置为如下所示,但我得到的响应是,内容类型头必须是application/vnd.api+json。请参阅以下代码:
String input = "{\r\n" +
" \"data\": {\r\n" +
" \"attributes\": {\r\n" +
" \"email\": \"emailqwszxwe@
我在Jax-RS(Jersey)restfulweb应用程序中使用mybatis。因此,自动地,我没有会话或状态管理
问题是如何使用mybatis的缓存功能?mybatis中的缓存非常简单。根据文件(用户手册第42页)
默认情况下,除了本地会话缓存之外,没有启用缓存,本地会话缓存可以提高性能,并且是解决循环依赖关系所必需的。要启用第二级缓存,只需在SQL映射文件中添加一行:
MyBatis 3-用户指南
2011年6月6日43
字面上就是这样
我在这样做时遇到的常见陷阱:
在映射器上添加缓存
我正在创建自己的日志过滤器,实现ContainerRequestFilter和ContainerResponseFilter。我只想在响应失败时打印请求实体,例如,响应状态代码为404500
但当我执行request.getEntity()或request.getEntityInputStream()时,会得到空字符串
在ContainerResponseFilter()的筛选方法中
看起来jersey在资源级别读取内容后会将其删除 它需要从输入流中读取实体,而输入流是不可重置的(所涉及的基础设
标签: Jersey
jax-rsresteasythread-local
我目前正在开发一个基于RESTeasy的RESTful服务。我有一个filter类,用作服务器请求筛选器和服务器响应筛选器(即,它实现ContainerRequestFilter和ContainerResponseFilter接口)
在请求开始时,我使用过滤器将对象放入ThreadLocal。此对象由资源在整个请求中使用。在请求结束时,在发送响应之前,过滤器会从ThreadLocal中删除对象
我的问题是,是否可以保证请求过滤器、资源和响应过滤器都将在同一个线程中执行?在请求筛选器将对象放入Th
我有一个jersey 2.0应用程序,使用带有freemarker模板的mcv。在一个模板中,我有一个表单,其操作是重新提交到同一个url。假设表单url为:
http://my-domain.com/app-base-path/my-form
因此,应用程序注释为:@ApplicationPath(“应用程序基本路径”)
资源路径注释是@path(“我的表单”)。太好了
我正在尝试将表单操作动态设置为:
<form name="settings" action="${model.fo
在Jersey文档中,显示了将SecurityContext注入Jersey资源单例的示例
当然文档是正确的,并且给出的示例确实是线程安全的
我怀疑SecurityContext的注入只发生一次,当调用getUserPrincipal()时,它可能从附加到线程本身的某个结构(可能是ThreadLocal对象?)中提取用户数据。这是当有大量线程竞争时,我能看到向最终用户提供正确用户信息的唯一方法
有人能确认这一行为吗,或者以其他方式解释Jersey示例的线程安全性吗?与ThrealLocal支持
我想在相同的方法上同时使用@Post和@Get
@GET
@POST
@Path("{mode}")
public void paymentFinish(@PathParam("mode") String mode, String s) {
logger.debug("Enter PayStatus POST");
logger.debug(mode);
}
即使我这样写,我也会出错。我想要的是无论得到什么或发布到sameurl,都是同样的方法。可能吗?现在我将两种方法分开,一
我只是感到困惑,所以我想寻求一些帮助和解释
我有一个jQuery函数,通过ajax,它可以对某个服务器进行POST调用
var login = $("#email1").val();
var password = $("#password1").val();
var summary = $("#summary").val();
var details = $("#details").val();
var address = $("#address").val();
var str = login
我知道Weblogic 12c v12.2.1使用Jersey作为JAX-RS实现。因此,我按照上的说明进行了操作,但无论是使用名称绑定还是动态绑定(即,所述链接中的更多信息),我都没有成功声明拦截器
我的应用程序工作正常,因为我实际上可以调用restful服务,但我不能应用过滤器或拦截器,它们从来没有参与过这个过程
我根本没有编辑web.xml,我只有一个javax.ws.rs.core.Application子类
@ApplicationPath("rs")
public class MyA
我已经设置了healthcheck in dropwizard,它们工作正常。现在,我只希望授权用户访问healthcheck。当我创建一个自定义过滤器并将其添加到管理员时,它从未被使用过。我补充说:
environment.admin().addFilter("AdminFilter",new AdminFilter());
如何向healthcheck请求添加筛选器?
我在端口8081上运行admin。我的yaml看起来像这样
server:
applicationConnectors
我在Jersey和Swagger上有一个工作的Tomcat设置,但现在我必须让它在WebLogic12c(12.2.1)上工作。我试过几种不同的方法让它发挥作用,但我最终陷入了各种死胡同。我在JDeveloper做这个
我已经结束了与杰克逊版本的问题和其他类似的冲突,每一种方式我都尝试过。我已经让Jersey与Weblogic合作,但不是招摇过市
如果有帮助的话,我可以使用旧版本
这是我最近一次失败后pom的一部分:
<dependency>
<grou
标签: Jersey
metadatamultipartmultiple-file-upload
我正在开发一个Jersey API,它必须接受多个文件的输入以及关于它们的一些细节
例如,对于每个图像,都会有点击者的姓名、所属类别、拍摄照片的位置等。这必须在单个请求对象上完成
没有确定数量的文件,因此我无法创建不同的变量,如(文件1、摄影师1、类别1、位置1)、(文件2、摄影师2、类别2、位置2)
我将通过多部分接受列表中的文件
是否有一种有效的方法来获取图像的元数据,以便我们可以确定元数据对应于列表中的哪个文件/图像?为了获取某个文件的元数据,您可以参考以下链接:
获取元数据后,您可以编
我在应用程序中使用Jersey-2.19.x调用restapi。由于jersey客户端的创建成本很高,因此我希望在API调用中重用该客户端,并因此通过guice注入来注入该客户端
以下是我的客户端GUI代码:
@Provides
@Singleton
Client getClient() {
return ClientBuilder.newClient();
}
这是我使用这种注入的类:
@Inject
public MyClass(Client client) {
this.clie
我总是以“ResourceConfig实例不包含任何根资源类”错误结束
除了球衣包,我甚至不需要别的东西
但是如果没有它,我会得到关于asm.jar的错误
package akiraapps.jerseytest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public clas
我试图在一个资源调用的JSON被解组后拦截它。通过阅读一些论坛和帖子,我发现我可以通过实现org.glassfish.jersey.server.spi.internal.ResourceMethodInvocationHandlerProvider来做到这一点。这样做之后,我现在一直在尝试注册我的CustomResourceMethodInvocationHandler提供程序,以便jersey/hk2内部调用我的重写公共InvocationHandler创建(Invocable Invoca
dagger2是否可以像guice一样用于球衣
是否有dagger2 servlet或dagger2 jersey项目?因此,简短的回答是否定的,在应用程序中获得jersey的所有功能时,没有一个很好的方法来实现这一点
然而,有一些方法可以部分做到这一点。您只需在应用程序servlet中注册资源(请参见此处的示例)
这种方法所失去的是场域级别的魔法,例如@Context。您仍然可以通过将它们添加到需要它们的方法签名中来实现这些功能,但在字段级别上很难做到这一点
这种方法的另一个缺点是,所有资源实
我正在尝试在WAS 9.0上部署与Jersey 1.17.1捆绑的应用程序,并获得CDIRuntimeException
java.lang.RuntimeException:com.ibm.ws.cdi.CDIRuntimeException:com.ibm.ws.cdi.CDIDeploymentRuntimeException:org.jboss.weld.exceptions.DefinitionException:异常列表,包含1个异常:
例外情况0:
java.lang.Runtim
有没有办法和邮递员一起测试jersey@FormDataParam(“文件”)FormDataBodyPart
我试着和邮递员打到终点以下
@POST
@Path("data/uploadPhoto")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadPhoto(@FormDataParam("file") FormDataBodyPart b
我们不使用Maven
我们环境中的框架。你能建议一种使用球衣的方法吗
测试RESTWeb服务的测试框架?我试图覆盖TestContaioner和TestContainerFactory接口以设置AppDescriptor,但我不理解如何设置LowLevel描述符以使用HTTPContainerFactory而不是默认的。我还尝试设置系统属性jersey.test.containerFactory。不起作用?有什么想法吗?根据这一点,它是test.containerFactory,而不是jerse
我使用@RolesAllowed({“Customer”})保护了一个web服务。我已经使用Jersey客户端API成功地测试了代码和安全配置。现在,我正在尝试使用AJAX从JavaScript访问相同的服务。我在XMLHttpRequest的open方法中设置凭据:
xhr.open("GET", url, true, "bob", "paasss");
这根本行不通。让我解释一下:
XHR首先发送一个没有授权头的请求。只有当它遇到401响应状态和“WWW-Authenticate”报头时,
有人能给我指出一个JUnit测试的例子吗?它使用InMemoryTestContainerFactory,来自jersey test framework inmemory,调用一个虚拟资源
提前谢谢 我收到一个编译错误。找不到inmemorytestcontainerfactory类。你知道哪个罐子有吗?我的classpath.com.sun.jersey.jersey测试框架:内存中的jersey测试框架,请参阅
我有这样的资源:
@GET
@Path("/todos")
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public List<Cliente> getListagem() {
@GET
@路径(“/todos”)
@产生({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
公共列表getListagem(){
我的客户是:
Cl
我对sencha touch是新手。我需要添加、更新数据记录详细信息。但我不知道。这是我的示例代码
View.js
Ext.define('bluebutton.view.BlueButton.Loyalty', {
extend: 'Ext.Container',
xtype: 'loyaltycard',
requires: [
'bluebutton.view.BlueButton.TransactionList',
'bluebut
在servlet容器中编写web应用程序时,可以编写一个实现javax.servlet.ServletContextListener的侦听器,以便在ServletContext初始化或销毁时执行某些操作
当使用vertx mod Jersey在Vert.x中编写Jersey应用程序时,您是如何做到这一点的 我从不使用ServletContextListener,只是猜测一下:
有一个setupHandler,您可以在http服务器启动之前执行想要运行的操作
您可以重写close方法来进行一些拆卸
我正在使用jersey(java)框架。我使用容器请求过滤器进行了基于cookie的身份验证。现在我要做授权。那么,我该如何继续?请提供快速指导。泽西岛有@RolesAllowed(“role”)注释,以方便身份验证。利用:
@Context
HttpServletRequest httpRequest`
在登录方法中,将标识放入会话,如下所示:
HttpSession session=httpRequest.getSession(true);
session.setAttribute(key
我已经有了一个部署在WebSphere7.X上的应用程序。
现在我需要向这个应用程序添加rest web服务,所以我在web.xml中添加了与servlet相关的信息,并在tomcat中部署了代码,
我在tomcat上工作得很好,但在websphere上部署相同的war文件时,它抛出了以下异常
10/29/15 16:07:55:203 EDT] 00000009 WebApplicatio I Initiating Jersey application, version 'Jersey
标签: Jersey
jersey-2.0jersey-1.0
下面是我的web.xml
<web-app>
<display-name>Kafka_APIs_LogManagement</display-name>
<servlet>
<servlet-name>myapplication</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletCon
我想编写以下不带QueryParam的GET方法
理想情况下,它应该返回所有记录
@GET
@Produces( { MediaType.APPLICATION_JSON } )
Response getAircraft( @Context SecurityContext aSc, @QueryParam( ID_PARAM ) String aAircraftId );
知道如何实现吗?您只需要删除QueryParam和变量,使其看起来像这样:
@GET
@Produces( { Me
使用@POST方法查看Jersey上的任何示例
@POST
@Path("register")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response register(RegisterRequest request) throws Exception {
HashMap<String, Object> model = new HashMap<String, Object>();
m
我通过Jersey在Java(JAX-RS)中开发了一个restful web服务:
然后我使用Hibernate技术将数据映射到数据库
最后,我开发了一个android应用程序来显示数据
这是我的Web服务中的一个方法示例:
@GET
@Path("/project_id/username/get/{projectId}/{username}/")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType
我试图对rest Web服务应用程序使用ContainerRequestFilter来验证输入请求。一旦请求经过身份验证,我需要向Resource传递一个包含所有信息的对象。有人能告诉我我们如何才能做到这一点吗
谢谢你的帮助
~MS在您的过滤器中,您需要拉入servlet请求:
@Context
private transient HttpServletRequest servletRequest;
并将数据存储为属性:
this.servletRequest.setAttribute("My
我想做一些JUnit测试,在Jetty9中运行Jersey 2.2。以下是我所拥有的:
就业服务
...
@Path("jobs")
public JobService() {
@GET
public Response list(){
return Response.ok("Hello World!").build();
}
}
JUnit测试中的jetty嵌入式服务器代码
@Before
public void startServer() thro
我试图扩展这个示例,以包括一个使用org.glassfish.jersey.server.ChunkedOutput的服务
package com.example;
...
@Path("/myresource")
public class MyResource {
@GET
public ChunkedOutput<String> foo() {
final ChunkedOutput<String> output = new ChunkedOutp
标签: Jersey
jersey-2.0jersey-client
我正在使用Jersey客户端从Java代码进行REST调用:
org.glassfish.jersey.core
泽西岛客户
2.22.1
在我的GET请求中
javax.ws.rs.client.Invocation.Builder=ClientBuilder.newClient().target(url.request();
builder.get().readEntity(String.class);
调用readEntity(String.class)后,客户端将自动关闭
如果我使
标签: Jersey
jersey-2.0spring-jersey
我使用Jersey将Java对象打包成JSON,如下所示:
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.io.IOException;
@POST
@Consumes({MediaType.APPLICATION_JSON})
@Path("/test")
public Response replay(String input) th
我正在编写一个需要模拟第三方RESTful服务器的测试服务器,我正在使用Jersey编写测试服务器
所有请求都是通过应用程序/xml有效负载发布的,因此我从以下内容开始:
@Path("GetUserDetails")
@POST
@Consumes(MediaType.APPLICATION_XML)
public GetUserDetailsResp GetUserDetails(GetUserDetailsReq request) {
...
}
Jersey
正在试用最新的Jersey-2版本。我需要在嵌入Jetty的情况下运行它。我有一个资源可以很好地使用Jersey 1.15。尝试了以下代码,但无法访问我的资源
ServletContextHandler sh = new ServletContextHandler();
ResourceConfig resourceConfig = new ResourceConfig();
resourceConfig.packages("com");
sh.addServlet(new ServletHol
我正在用WebSphere8.5.5.2(WebSphere7.1SDK)中的Jersey 2.10和JavaSE 1.7建立项目
当我部署项目时,我得到了这个错误
com.ibm.ws.webcontainer.webapp.webapp commonInitializationFinally SRVE0266E:初始化servlet时出错:{0}
javax.servlet.ServletException:SRVE0207E:由servlet创建的未捕获初始化异常
位于com.ibm.ws
我用的是起动器球衣和起动器执行器。如果我有一个端点,如下所示
@Component
@Path("/greeting")
public class GreetingEndpoint {
@GET
@Path("{id}/{message}")
@Produces(MediaType.APPLICATION_JSON)
public Greeting sayHello(@PathParam("id") Long id, @PathParam("message") String m
标签: Jersey
jacksonjson-deserialization
我有一个要求,在该要求中,REST使用者将在客户端或使用者的区域设置中发送日期数据。HTTP标头将配置为发送客户端区域设置信息
REST服务器实现需要处理Http头并将日期从客户端区域设置转换为UTC格式,并将日期存储到数据库中
类似地,当返回响应时,如果存在日期字段,则需要反向操作。这将确保消费者看到的日期与客户端输入的日期相同
我想知道如何访问HTTPRequest对象或将自定义参数传递给我实现的JSONSerializer和JSONDeserializer。我认为可以使用ThreadLoc
当Jersey中有一个监听POST请求的方法,并且当我想从中获取数据的方法中有一个InputStream作为参数时,我需要关闭这个InputStream还是Jersey会处理这个问题
我没有找到任何关于它的信息。不久前,我读过使用JAX-RS2.0的RESTfulJava,我不记得是否有人提到过它。现在浏览一下,我发现了几个代码示例,并且流没有关闭。我认为这是没有必要的,但我想问一下。您是如何获得InputStream引用的?通过MessageBodyReader?在这种情况下,如果使用Mess
使用的优点和缺点是什么
@GET
@Path("....
@Produces(MediaType.APPLICATION_JSON)
public Response objects (...
return Response.status(HttpServletResponse.SC_OK).entity(objects).build();
及
@GET
@产生(MediaType.APPLICATION_JSON)
公共列表getTestsBrowser(){
列表测试
标签: Jersey
tomcat8java-ee-7hk2
根据本博客的指南,我有以下POJO资源:
testserviceinpl
@Service
public class TestServiceImpl implements TestService {
@Override
public Set<Test> getAllTests() {
Set<Test> tests = new HashSet<>();
Test c = new Test();
此资源方法如何生成json或xml结果
我应该解析requestaccept头并进行if/else分支,还是将这样做
给我
@GET
@Produces({"application/xml", "application/json"})
public String doGetAsXmlOrJson() {
...
}
一个关于如何实现doGetAsXmlOrJson()的示例会很好。As states
@products注释用于指定MIME媒体类型或
资源可以生成并发送回客户端的表示
因
将不带尾随斜杠的路由请求重定向到具有其他匹配路径的匹配控制器的功能。这似乎有效,所以
GET /something
已正确路由到终结点
@Path("/something/")
public Response doSomething() {
...
}
通常情况下,这很好,这是我所期望的行为,但在某些情况下,我希望以不同的方式对待这两者
例如,我有一个端点服务于动态html,它包含静态资源的相对路径。当请求没有尾随斜杠时,将删除资源404
我知道我可以在html中切换到绝对路径,但我
我在我的资源类中声明了以下方法
@Path("{id:\\d+}")
@PUT
@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response putPerson(@PathParam("id") long id, Person person) {
logger.debug("Going to update the person with
1 2 3 4 5 6 ...
下一页 最后一页 共 11 页