小编cas*_*lin的帖子

从Angular2服务返回一个空的Observable

我正在构建一个Angular 2应用程序,它使用服务来收集数据.该服务确实包含以下逻辑:

/* ========== CORE COMPONENTS ========== */
import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/Rx';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';

/* ========== MODELS ========== */
import { IApplicationViewModel } from './models/application.model';

/* ========== CONSTANTS ========== */
import { LogzillaServerConfiguration } from '../../app.configuration';

@Injectable()
export class ApplicationService {
    private getAllEndpoint = LogzillaServerConfiguration.host + '/api/administration/application/getAll';

    // Initializes a new instance of the 'ApplicationService'.
    constructor(private http: Http) { }

    // …
Run Code Online (Sandbox Code Playgroud)

angular

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

Bean验证引发ConstraintViolationException时自定义JAX-RS响应

Bean Validation是验证对象的好选择,但是如何在ConstraintViolationException抛出时自定义REST API的响应(使用RESTeasy)?

例如:

@POST
@Path("company")
@Consumes("application/json")
public void saveCompany(@Valid Company company) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

包含无效数据的请求将返回400具有以下正文的HTTP 状态代码:

[PARAMETER]
[saveCompany.arg0.name]
[{company.name.size}]
[a]
Run Code Online (Sandbox Code Playgroud)

这很好但不够,我想在JSON文档中规范化这些错误.

我该如何自定义此行为?

java rest jax-rs resteasy bean-validation

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

杰克逊 java.util.Date 值在 Map<String, Object>(反)序列化

考虑这个属性

@JsonProperty
private Map<String, Object> myMap;
Run Code Online (Sandbox Code Playgroud)

当一个包含的java.util.Date值被序列化时,它不会被Date再次反序列化,因为类型信息不存在于Map<String, Object>. 我怎样才能绕过这个问题?我阅读了有关此问题的答案,将是一个解决方法,但无法区分包含日期的字符串和在地图中序列化为字符串的日期。我可以告诉 Jackson 为每个映射值包含类型信息,以便 Jackson 可以正确反序列化它们吗?

java jackson jackson-databind

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

将 Hashmap 拆分为两个较小的 Map

我有一个哈希图,其 K、V 值为,我想将其拆分为两个子图。

HashMap<Long,JSONObject>

一种方法是我发现我们可以使用树形图并进行子映射。

TreeMap<Integer, Integer> sorted = new TreeMap<Integer, Integer>(bigMap);

SortedMap<Integer, Integer> zeroToFortyNine = sorted.subMap(0, 50);
SortedMap<Integer, Integer> fiftyToNinetyNine = sorted.subMap(50, 100);
Run Code Online (Sandbox Code Playgroud)

但问题是我没有获得 jsonObject 的 subMap,而我只想使用 HashMap 来实现。

谢谢

java

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

没有创建资源时,我应该为POST返回什么HTTP状态代码?

我正在将映像发布到我的服务器(Java和Spring)。

可能会发生几件事:

  • 如果一切顺利,那么我将返回200图像ID。
  • 图像无法保存到文件系统(SaveFileException)。
  • 数据库无法使用新的URL(DatabaseException)更新新的图像记录。
  • 或扔一个IOException

简而言之,我无法保存/创建图像。

我应该返回什么HTTP代码?

我是否应该根据返回多个代码和多个消息Exception

java rest spring http

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

如何使用JAX-RS转发请求?

我想将REST请求转发到另一台服务器。

我将JAX-RS与Jersey和Tomcat一起使用。我尝试通过设置See Other响应和添加Location标题来进行尝试,但这并不是真正的前进。

如果我使用:

request.getRequestDispatcher(url).forward(request, response); 
Run Code Online (Sandbox Code Playgroud)

我得到:

  • java.lang.StackOverflowError:如果网址是相对路径
  • java.lang.IllegalArgumentException:路径http://website.com不能以/字符开头(我认为转发仅在同一servlet上下文中是合法的)。

如何转发请求?

java servlets http jax-rs forward

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

使用 jax-rs 和 cxf 进行客户端身份验证

我们要将 JAX-RS 实现从 Jersey 切换到 Apache CXF 3.0。我只是无法弄清楚基本身份验证是如何以 Apache CXF 方式完成的。我在 CXF 周围找到的所有示例WebClient,而不是 JAX-RS Client API。

这就是泽西岛的工作:

Client client = ClientBuilder.newClient();
client.register(HttpAuthenticationFeature.basic(config.getUsername(),config.getPassword()));
Run Code Online (Sandbox Code Playgroud)

如何使用 Apache CXF 做到这一点?

java cxf jax-rs jersey

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

在JPA 2.1中基于多个属性创建转换器

JPA 2.1引入了类型转换器.我找到了基于单个实体属性的转换器示例.

是否可以基于多个实体属性创建类型转换器?
有一些例子吗?

java orm hibernate jpa jpa-2.1

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

使用Jersey在运行时确定同步或异步响应

是否可以在运行时决定是否应同步或异步处理对资源端点的Jersey REST请求?我们举一个简单的例子.

同步版本:

@Path("resource")
public class Resource {
    @GET
    @Produces({MediaType.TEXT_PLAIN})
    public Response get() {
        return Response.ok("Hello there!").build();
    }
}
Run Code Online (Sandbox Code Playgroud)

异步版本:

@Path("resource")
public class Resource {
    @GET
    @Produces({MediaType.TEXT_PLAIN})
    public void get(@Suspended final AsyncResponse r) {
        r.resume(Response.ok("Hello there!").build()); // usually called somewhere from another thread
    }
}
Run Code Online (Sandbox Code Playgroud)

根据某些参数,我想在运行时决定是应该同步还是异步处理GET请求.http://server/resource在两种情况下,资源endpoint()的URL 必须相同.这可能吗?

当然,正如您在上面的示例中所看到的,同步版本可以通过简单调用以异步方式伪造AsyncResponse.resume(...).但是,我会避免创建异步响应的开销.

java rest asynchronous jersey

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

使用 Java 8 中引入的 @Exported 注释标记的类型是否安全?

Java 8 引入了@Exported注释,其文档说明如下:

指示 JDK 特定类型或包是否是 JDK 的导出部分,适合在 JDK 实现本身之外使用。

什么是JDK导出部分?我应该使用任何标有此类注释的类型吗?它被认为是安全的吗?

例如,此注释存在于com.sun.net.httpserver.HttpServer类中。

java

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