标签: jsr250

使用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万
查看次数

如何将javax.annotation.Generated添加到Java SE 5?

我正在开发一个必须在Java SE 5和Java SE 6上运行的项目.我最近开始使用一个@Generated向生成的代码添加注释的工具,我想保留这些注释.它看起来像是javax.annotation.Generated在Java 5 EE和Java 6 SE及更高版本中,但不在Java 5 SE API中.

javax.annotation.Generated当我将它发送给客户时,最好的方法是什么,所以它可以在Java SE 5和Java SE 6上运行而没有任何问题?我只需要包含一个额外的jarfile吗?如果是这样,哪一个确实@Generated存在?

java java-5 jsr250

6
推荐指数
2
解决办法
7858
查看次数

如何将Apache CXF Web服务部署到Glassfish

我有一个使用Apache CXF生成和构建的Web服务客户端.接下来我有JAX-RS Jersey应用程序,我想从该webservice调用方法.当我尝试将这个简单的项目部署到Glassfish 4.0服务器时,我得到以下异常:

Exception while deploying the app [pelijee] :
The lifecycle method [finalizeConfig] must not throw a checked exception.
Related annotation information: annotation [@javax.annotation.PostConstruct()] on annotated element [public void org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine.finalizeConfig() throws java.security.GeneralSecurityException,java.io.IOException] of type [METHOD]. Please see server.log for more details.
Run Code Online (Sandbox Code Playgroud)

命令部署失败.

我在这个项目中唯一的CXF依赖是:

    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-bundle-jaxrs</artifactId>
        <version>2.7.6</version>
        <type>jar</type>
        <scope>runtime</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

是否还有其他与JSR 250兼容的CXF库?谢谢

web-services cxf java-ee jsr250

6
推荐指数
1
解决办法
2416
查看次数

标签 统计

jsr250 ×3

java ×2

cxf ×1

java-5 ×1

java-ee ×1

jax-rs ×1

jersey ×1

web-services ×1