小编cas*_*lin的帖子

如何仅使用Jackson将XML转换为JSON?

我从服务器获得XML响应.但我需要以JSON格式显示它.

有没有办法在没有任何第三方API的情况下进行转换?我用过杰克逊,但为此我需要创建POJO.

服务器的响应是这样的:

<?xml version='1.0'?>
<errors><error><status>400</status><message>The field 'quantity' is invalid.</message><details><invalid_reason>The quantity specified is greater than the quantity of the product that is available to ship.</invalid_reason><available_quantity>0</available_quantity><order_product_id>12525</order_product_id></details></error></errors>
Run Code Online (Sandbox Code Playgroud)

java xml json jackson

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

如何在JAX-RS服务中读取授权头

我是Authorization标头的新手,尝试使用JAX-RS服务创建授权(和身份验证)

我在javascript上的代码片段如下所示:

            sUrl = getURL() + "/com.cabRoutePlanner.Login/Login";  
            var oHeaders = {};
            oHeaders['Authorization'] = "Basic " + btoa(getUserName() + ":" + getPassword());

            var request = {
                headers : oHeaders,
                requestUri : sUrl,
                data: connectionData,
                method : "POST"
            };
            OData.request(request, onSuccessForRegister, onRegError);
Run Code Online (Sandbox Code Playgroud)

现在,我想在JAX-RS服务中读取此授权标头,即我的Java Rest服务中的用户名和密码,并检查我的数据库.我感到困惑的是,我不知道如何使用此授权标头.如果有人能够在REST服务中向我展示该功能的声明,并且只是为了访问我的用户名和密码,那就太棒了.

我以某种方式编写了代码,有点直觉和Eclipse的大力帮助

@Path("/Log")
@POST
@Produces(MediaType.APPLICATION_JSON)
public Response log(HttpServletRequest req)throws JSONException
{
    JSONObject returnObject = new JSONObject();
    String authorization = req.getHeader("Authorization");
    if (authorization != null && authorization.startsWith("Basic")) 
    {
        //byte[] message = authorization.substring("Basic".length()).trim().getBytes();
        String credentials = authorization.substring("Basic".length()).trim();
        byte[] decoded = DatatypeConverter.parseBase64Binary(credentials); …
Run Code Online (Sandbox Code Playgroud)

java authorization header jax-rs

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

REST API中搜索的响应状态代码

假设我们有以下API:

GET /api/guests/{id}
Run Code Online (Sandbox Code Playgroud)
GET /api/guests?name=dummy
Run Code Online (Sandbox Code Playgroud)

当没有符合条件的客人时,我应该返回哪个状态代码?我的意思是没有名字假的客人.

应该是404,204还是200空数组?

rest http http-status-codes

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

在Jersey中使用名称绑定注释

如何@NameBinding在Jersey中使用过滤器对特定资源方法或资源类应用过滤器?

请考虑以下注释:

@NameBinding
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface SomeAnnotaion{}
Run Code Online (Sandbox Code Playgroud)

它是如何工作的?

java rest jersey

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

Spring Boot应用中service层有什么用?

我是 Spring Boot 的新手,我正在创建一个没有 UI 的 RESTful API。

我在想是否应该使用业务服务并从那里调用存储库,还是直接从我的 REST 控制器调用存储库?

model-view-controller spring spring-boot

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

如何在Java Web应用程序中集成指纹扫描程序

我比较新鲜,我想在我的网络应用程序中使用指纹工具.我尝试过神经技术API但该API给我一个错误,没有找到扫描仪.设备制造商提供的演示应用程序正在成功运行,但不是我的应用程序.

所以请建议我哪个API很有用,并且很容易将API集成到我的应用程序中.

java fingerprint

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

使用JAX-RS 2.0客户端API进行POST

我有一个REST服务,使用表单参数公开POST服务:

@POST
@Path("/add")
@Produces("text/html")
public Response create(@FormParam("key")String key,
            @FormParam("value")String value)
{    
    service.addToList(key,value);    
    return Response.ok(RESPONSE_OK).build();     

} 
Run Code Online (Sandbox Code Playgroud)

我需要找到一种方法来使用JAX-RS客户端API调用此服务.遗憾的是,网上唯一可用的示例使用了传递给Web目标资源的Entity类:

StoreOrder order = new StoreOrder(...);
WebTarget myResource = client.target("http://example.com/webapi/write");
TrackingNumber trackingNumber = myResource.request(MediaType.APPLICATION_XML)
                                   .post(Entity.xml(order), TrackingNumber.class);
Run Code Online (Sandbox Code Playgroud)

知道如何通过单个参数(可能是表单参数)调用我的服务吗?谢谢!

rest java-ee java-ee-7

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

在WildFly中重新部署之间保持HTTP会话

可以在WildFly上重新部署之间保持HTTP会话吗?

java session wildfly

10
推荐指数
1
解决办法
3356
查看次数

我应该在JAX-RS中使用@QueryParam还是@BeanParam?

我在考虑处理查询/请求参数的两个选项:

  1. 将各个参数映射到对应的方法参数:
@GET
public String blah(@QueryParam("testParam") String testParam) {

}
Run Code Online (Sandbox Code Playgroud)
  1. 将所有参数映射到Java bean的属性:
@GET
public String blah(@BeanParam RequestParamBean bean) {

}
Run Code Online (Sandbox Code Playgroud)

第二个选项看起来更具吸引力,因为它允许输入查询参数的验证逻辑被移动和解耦,blah其核心职责应该是处理并将验证委托给验证器进行高度解耦(以及SOLID原则,正确) ?).

但是,我看到的大多数示例(事实上,我正在处理的现有项目)只使用第一个选项.我想知道为什么没有广泛使用第二种选择是否有任何理由?有任何陷阱吗?这是反模式吗?这是否违反任何最佳做法?

java jax-rs

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

REST API应该如何接受布尔值?

资源123具有当前配置状态和默认配置状态,并且这两种配置状态都可以由JSON表示.

GET请求http://example.com/123/config将返回当前配置状态,以及GET请求http://example.com/123/config?reset=true将返回默认配置状态.

API如何解释布尔值?例如:

  • http://example.com/123/config?reset=true
  • http://example.com/123/config?reset=blablabla
  • http://example.com/123/config?reset=false
  • http://example.com/123/config?reset=1
  • http://example.com/123/config?reset=0
  • http://example.com/123/config?reset=
  • http://example.com/123/config?reset

rest url http

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