小编Ste*_*fan的帖子

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

如何在Xcode 4中重置警告

有没有办法重置Xcode 4项目中的所有警告/错误?Xcode 4向我展示了错误和警告,例如Unused variable 'pageType'几周前已被删除或'XXXXViewController' undeclared (first use in this function)仅用于测试目的而且已经消失.

我找不到任何选项如何摆脱这些消息!安迪提示?谢谢!

xcode4

5
推荐指数
1
解决办法
1965
查看次数

EclipseLink在插入数据时非常慢

我正在使用MySQL 5.5的最新EclipseLink版本(表类型InnoDB).我一次插入大约30900条记录(也可能更多).问题是,插入性能非常差:插入所有记录大约需要22秒(与JDBC相比:7秒).我读过使用批量写作应该有帮助 - 但不是!?

@Entity
public class TestRecord {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Long id;

    public int test;
}
Run Code Online (Sandbox Code Playgroud)

插入记录的代码:

factory = Persistence.createEntityManagerFactory("xx_test");
EntityManager em = factory.createEntityManager();

em.getTransaction().begin();

for(int i = 0; i < 30900; i++) {
    TestRecord record = new TestRecord();
    record.test = 21;
    em.persist(record);
}

em.getTransaction().commit();
em.close();
Run Code Online (Sandbox Code Playgroud)

最后我的EclipseLink配置:

<persistence-unit name="xx_test" transaction-type="RESOURCE_LOCAL">
    <class>com.test.TestRecord</class>

    <properties>
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/xx_test" />
        <property name="javax.persistence.jdbc.user" value="root" />
        <property name="javax.persistence.jdbc.password" value="test" />

        <property name="eclipselink.jdbc.batch-writing" value="JDBC" />
        <property name="eclipselink.jdbc.cache-statements" value="true"/>   

        <property …
Run Code Online (Sandbox Code Playgroud)

eclipselink

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

标签 统计

eclipselink ×1

java ×1

jax-rs ×1

jersey ×1

jsr250 ×1

xcode4 ×1