标签: jax-rs

如何获取请求的URL?

我正在使用Jeresy Jax-RS来构建一个Web服务.现在我需要使用端口#获取请求的url(如果存在).

因此,如果我的服务在http://www.somelocation.com/web/services上运行,我想要捕获www.somelocation.com

我怎样才能做到这一点 ?

java jax-rs jersey

16
推荐指数
1
解决办法
8917
查看次数

使用JAX-RS(Jersey)和@RolesAllowed自定义HTTP状态响应

使用我非常简单的JAX-RS服务,我使用Tomcat和JDBC领域进行身份验证,因此我正在使用JSR 250注释.

问题是我想在HTTP状态响应中返回自定义消息体.状态代码(403)应保持不变.例如,我的服务如下所示:

@RolesAllowed({ "ADMIN" })
@Path("/users")
public class UsersService {

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public String getUsers() {
        // get users ...
        return ...;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果角色与"ADMIN"不同的用户访问该服务,我想将响应消息更改为类似的内容(取决于媒体类型[xml/json]):

<error id="100">
    <message>Not allowed.</message>
</error>
Run Code Online (Sandbox Code Playgroud)

目前泽西岛返回以下机构:

HTTP Status 403 - Forbidden

type Status report
message Forbidden
description Access to the specified resource (Forbidden) has been forbidden.
Apache Tomcat/7.0.12
Run Code Online (Sandbox Code Playgroud)

如何更改默认邮件正文?有没有办法处理(可能抛出)异常来构建我自己的HTTP状态响应?

java jax-rs jersey jsr250

16
推荐指数
2
解决办法
5万
查看次数

AsynchronousDispatcher错误

我得到的错误,当我尝试上传正是基于关闭此处显示的实例文件 示例

错误是

为servlet com.testapp.rest.JaxRsActivator分配异常:java.lang.RuntimeException:无法找到类org.jboss.resteasy.core.AsynchronousDispatcher的公共构造函数

这意味着什么?

java jax-rs jboss7.x

16
推荐指数
1
解决办法
3万
查看次数

是否可以定义一个与其实现分开的jax-rs服务接口(使用eclipse和jersey)?

我不知道标题是否令人困惑,但让我说我有这个界面:

@Produces(MediaType.APPLICATION_JSON)
@Path("/user")
public interface UserService {

    @GET
    @Path("/{userId}")
    public Response getUser(@PathParam("userId") Long userId);

}
Run Code Online (Sandbox Code Playgroud)

为什么当我尝试实现一个版本Eclipse重写覆盖方法的注释而不是类?

class UserServiceImpl implements UserService {

    @Override
    @GET
    @Path("/{userId}")
    public Response getUser(@PathParam("userId") Long userId) {
        // TODO Auto-generated method stub
        return null;
    }

}
Run Code Online (Sandbox Code Playgroud)

我试图为restful Web服务创建一个标准定义,然后进行不同的实现.使用标准的jax-rs是否可以这样?我是否有机会使用错误的注释?

java jax-rs jersey java-ee-6

16
推荐指数
1
解决办法
1万
查看次数

处理HttpServletResponse时运行JerseyTest的问题

这是一个示例Resource类:

@Path("/resource") 
public class SomeResource { 
    @GET 
    @Produces({MediaType.APPLICATION_XML}) 
    public String someMethod(@QueryParam("param1") String param1, ..., @Context HttpServletRequest request) { 
            String remoteUser = request.getRemoteAddr(); 
            // Business logic here. 
            return response; 
    } 
} 
Run Code Online (Sandbox Code Playgroud)

而JerseyTest的资源:

public class TestSomeResource extends JerseyTest    { 
    @Override 
    protected Application configure() { 
            enable(TestProperties.LOG_TRAFFIC); 
            return new ResourceConfig(SomeResource.class); 
    } 

    @Test 
    public void testXMLResponse()   { 
            String response = target("resource") 
                            .queryParam("param1", param1) 
                            // More parameters here. 
                            .request() 
                            .accept(MediaType.APPLICATION_XML) 
                            .get(String.class); 
            // Some assertions on response. 
    } 
} 
Run Code Online (Sandbox Code Playgroud)

除了@Context HttpServletRequest用作输入参数的资源外,我能够为所有其他资源运行泽西测试.它给了一个InternalServerErrorException: HTTP 500 Internal …

java rest jax-rs jersey java-ee

16
推荐指数
2
解决办法
2万
查看次数

如何让@RolesAllowed注释适用于我的Web应用程序?

我使用Backbone.js,Bootstrap,NetBeans IDE 8.0,Java EE 7,JDK 8,WildFly服务器8.1.0,JBoss RESTEasy(resteasy-jaxrs-3.0.8),JBoss 2.2.22,JBoss EJB 3制作Web应用程序.

我(相对)是Web开发的新手,因此我才开始掌握很多基本概念和技术.我正在尝试将用户和角色的权限系统构建到Web应用程序中,但我似乎无法使@RolesAllowed注释在我的RESTful Web服务中工作.我已经在这个问题上工作了几天.

我有一个名为UserResource.java的RESTful资源(Java Enterprise/Session Bean?),在这里我有一个方法create来为应用程序创建一个新用户:

import java.net.URI;
import java.security.Principal;
import java.util.List;
import javax.annotation.security.PermitAll;
import javax.annotation.security.RolesAllowed;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ws.rs.*;
import javax.ws.rs.core.*;
import org.jboss.ejb3.annotation.SecurityDomain;

@Stateless
@SecurityDomain("other")
@Path("/user")
public class UserResource {
    @EJB(name = "UserServiceImp")
    UserService userService;

    @Context
    private UriInfo uriInfo;

    @RolesAllowed({"admin"})
    @Path("create")
    @POST
    public Response create(CreateRequest request) {        
        try {
            System.out.println("Start of create method");
            User user = userService.createUser(request);
            return getCreateResponse(user);
        }
        catch (Exception …
Run Code Online (Sandbox Code Playgroud)

java security ejb jax-rs resteasy

16
推荐指数
1
解决办法
3万
查看次数

JAX-RS中的X代表什么?

在首字母缩略词JAX-RS中,X代表什么?

我知道RS代表Restful Service而J代表Java和A代表API.那么X呢?

java terminology jax-rs

16
推荐指数
2
解决办法
4081
查看次数

问题Resteasy 3.09 CorsFilter

我尝试使用CorsFilterResteasy 3.0.9中提供的新功能.我在本页底部找到了一个示例: 使用JAX-RS/RESTEasy实现CORS的Ajax请求

如果我在方法getSingletons()(Application子类)中定义此过滤器,那么我的资源不再被扫描.这意味着将找不到资源并发生以下错误:

javax.ws.rs.NotFoundException: Could not find resource for full path Error Occures

在下一页我找到了一个描述: javax.ws.rs.NotFoundException:找不到完整路径的资源错误Occures

但基本上,此部署选项的作用是扫描应用程序的@ Path,@ Extider等注释.原因是JAX-RS将首先分别在重写的getClasses()和getSingletons()中查找类和对象.如果然后返回空集,则告诉JAX-RS进行扫描(根据规范).

所以如果我覆盖这个getSingletons()方法,JAX-RS不会进行扫描?有没有其他方法来配置它CorsFilter并启用资源扫描?

java jax-rs resteasy cors

16
推荐指数
1
解决办法
2万
查看次数

在多线程环境中重用JAX RS Client(具有resteasy)

根据文件,

"客户端是管理客户端通信基础设施的重量级对象.初始化以及客户端实例的处理可能是一项相当昂贵的操作.因此建议在应用程序中仅构建少量客户端实例."

好吧,我正在尝试将Client本身和WebTarget实例缓存在一个静态变量中,someMethod()在多线程环境中调用:

private static Client client = ClientBuilder.newClient();
private static WebTarget webTarget = client.target("someBaseUrl");
...
public static String someMethod(String arg1, String arg2)
{
    WebTarget target = entrTarget.queryParam("arg1", arg1).queryParam("arg2", arg2);
    Response response = target.request().get();
    final String result = response.readEntity(String.class);
    response.close();
    return result;
}
Run Code Online (Sandbox Code Playgroud)

但有时(并非总是)我得到一个例外:

BasicClientConnManager的使用无效:仍然分配了连接.确保在分配另一个连接之前释放连接.

如何正确地重用/缓存Client/WebTarget?是否可以使用JAX RS Client API?或者我必须使用一些特定于框架的功能(resteasy/jersey)你能提供一些示例或文档吗?

java multithreading jax-rs jersey resteasy

16
推荐指数
2
解决办法
9926
查看次数

将响应标头添加到JAX-RS Webservice

我正在尝试为我的一些webservice调用添加一些响应标头.我使用CXF 2.1.2和JAX-RS编写了我的Web服务.我需要返回一个对象,我还想在Response中添加一些标题. 如果不返回javax.ws.rs.core.Response对象,如何在响应中添加标头并仍然返回我的javabean?

java web-services cxf jax-rs httpresponse

15
推荐指数
1
解决办法
8724
查看次数