小编had*_*des的帖子

JAX-RS和Spring Rest之间的区别

我混淆了JAX-RS之间的区别(好吧,也许应该使用Jersey进行比较,因为JAX-RS只是规范)和Spring for Restful服务.我试图在网上搜索更多信息,它变得更加混乱.我的公司正在使用Spring MVC来开发Restful API

令人困惑的部分是,JAX-RS代表用于RESTful Web服务的Java API,在Spring中我也使用java来开发RESTful Web服务,所以我实际上并没有得到差异.Spring是否遵循JAX-RS规范?

据我所知,直到现在:

  1. JAX-RS是一个蓝图/规范,它有Jersey,RESTeasy等作为实现.

jax-rs spring-mvc jersey

113
推荐指数
4
解决办法
5万
查看次数

Java 8可选.为什么和ofNullable?

我有一个关于Java 8的Optional的问题,其目的是解决NullPointerException异常问题.

问题是,让两种类型让我们选择的原因是什么:

Optional.of(T value)     <-----non-null value, null value will throw NPE
Optional.ofNullable(T value)   <----- nullable value
Run Code Online (Sandbox Code Playgroud)

因为我的期望是,当我使用时:

Optional.of(nullValue);
Run Code Online (Sandbox Code Playgroud)

它不会抛出一个NullPointerException.


一些回复后扩大了我的问题:

为什么人们会选择Optional而不是普通if-else的null检查?

java optional java-8

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

电子邮件缩略图网址已更改为gmail中的googleusercontent.com

每当用户上传图像时我都有一个系统,它会向注册用户的gmail发送一封电子邮件.但在电子邮件中,我看到这样的东西,缩略图是不可见的.

在此输入图像描述

我检查元素,发现src链接到这个url: https://ci5.googleusercontent.com/proxy/VI2cPXWhfKZEIarh-iyKNz1j9q7Ymh8ty4Yz19lXh82RjSlACBzS0aRajfIj913uXAsX2ylcLEDs5FBsj4cR9TcU75Pw5djdHx4htxdCAQxs_ue1Q1wi5TV43uLLBpigpjH1xN747mUHSRdTBJmXQWFyykInJCRXicM1KhNk=s0-d-e1-ft#https://www.somedomain.com/files/1658/thumbnail_71JtDozxS1L._SY450_.jpg

显然它是由谷歌代理缓存

但是我可以通过访问来查看没有谷歌用户内容的图像https://www.somedomain.com/files/1658/thumbnail_71JtDozxS1L._SY450_.jpg(我屏蔽了域,因此您可能无法使用该图像).

我试图清除浏览器缓存,但问题仍然存在.我如何绕过googleusercontent thingy或至少使缩略图能够显示.

我在这个链接上结账图像没有显示给Gmail,但我没有使用localhost,图像本身可以在我的本地网络之外访问.

html gmail web

13
推荐指数
1
解决办法
6565
查看次数

将字符串ISO-8601日期转换为oracle的timestamp数据类型

我在VARCHAR2类型中有ISO-8601日期,如何将该字符串日期转换为oracle db中的时间戳?

日期示例:"2014-09-12T11:53:06 + 00:00"

也许是以下类似但我不确定格式是什么.

SELECT to_timestamp_tz ('2014-09-12T11:53:06+00:00', ????) FROM DUAL
Run Code Online (Sandbox Code Playgroud)

database oracle iso8601

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

Java Hibernate @SafeHtml不允许url链接

我需要在我的文本域中使用XSS过滤器,但我需要允许某些html标签进行文本格式化(粗体,斜体等),我还需要允许网址链接,如:

<p style='text-align: left;'><a href='google.com'>then with links!</a></p>
Run Code Online (Sandbox Code Playgroud)

所以在我的实体课中我添加了白名单:

@SafeHtml(whitelistType = WhiteListType.RELAXED,
        additionalTagsWithAttributes = { 
                @SafeHtml.Tag(name = "a", attributes = { "href" })
})
private String body;
Run Code Online (Sandbox Code Playgroud)

但它仍然给我以下错误:

may have unsafe html content
Run Code Online (Sandbox Code Playgroud)

java hibernate

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

Java 8替代方法,用于验证多个嵌套循环内的数据

我有一个关于验证嵌套for循环中的数据的问题.

public class Object1{
  private String obj1Name;

  private String obj1Desc;

  private List<Object2> object2List;

  //Setters and getters
}


public class Object2{
  private String obj2Name;

  private String obj2Desc;

  private List<Object3> object3List;

  //Setters and getters
}

public class Object3{
  private String obj3Name;

  private String obj3Desc;
  //Setters and getters
}
Run Code Online (Sandbox Code Playgroud)

我希望验证所有对象namedesc所有对象,而不是使用如下所示的嵌套循环:

List<Object1> object1List = getObject1List();

for(Object1 object1 : object1List ){
   if(object1.getObj1Name() == null){
     //throw error
   }

   if(object1.getObj1Desc() == null){
     //throw error
   }

   for(Object2 object2 : object1.getObject2List()){
        if(object2.getObj2Name() == null){
            //throw …
Run Code Online (Sandbox Code Playgroud)

java java-8

7
推荐指数
1
解决办法
840
查看次数

Rxjs 将可观察值中的值分配给全局变量

抱歉,我是角度和异步编程的新手,我正在尝试将 rxjs 可观察到的值分配给全局变量,如下所示:

public currentUser: User;

this.userService.getAuthUser().subscribe(user => {
  this.currentUser = user;
});
console.log(this.currentUser.name);
Run Code Online (Sandbox Code Playgroud)

我知道 rxjs observable 是异步的,因此值将位于undefined最后一行console.log(...)。有什么方法可以将可观察变量的值分配给全局变量吗?比如等待getAuthUser()异步方法完成然后将其分配给全局变量。

asynchronous observable rxjs angular

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

Jackson - 迭代数组并操作其值

我有这个json文件:

{
  "gateway_name": "gateway1",
  "fields": [
    {"name":"Code", "value":""},
    {"name":"PaymentId", "value":""},
    {"name":"RefNo", "value":""}
  ]
}
Run Code Online (Sandbox Code Playgroud)

我试图用Jackson对象映射器解析这个文件并遍历fields数组。我想要实现的是当name等于时RefNo,操纵valueto 1112,所以它会变成:

{
  "gateway_name": "gateway1",
  "fields": [
    {"name":"Code", "value":""},
    {"name":"PaymentId", "value":""},
    {"name":"RefNo", "value":"1112"}
  ]
}
Run Code Online (Sandbox Code Playgroud)

我如何检查field值并将其设置value1112

到目前为止我尝试的是:

  Resource resource = new ClassPathResource("gateway-fields.json");  //read from json file
  JsonFactory jsonFactory = new JsonFactory();
  ObjectMapper objectMapper = new ObjectMapper(jsonFactory);

  JsonNode arrayNode = objectMapper.readTree(resource.getFile()).get("fields");

  if (arrayNode.isArray()) {
      for (JsonNode jsonNode : arrayNode) { …
Run Code Online (Sandbox Code Playgroud)

java jackson objectmapper

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

Firebase setCustomUserClaims 总是覆盖旧的

在 firebase 中,我希望使用自定义用户声明来设置用户角色,以及用户能够访问的模块。

如果用户是管理员,则自定义声明将是:

{isAdmin: true}
Run Code Online (Sandbox Code Playgroud)

然后现在我在我的云功能代码中授予管理员访问用户模块的权限:

exports.grantUserAccess = functions.https.onCall((data)=> {
  return firebase.auth().setCustomUserClaims(data.uid, {
    hasUserModule: true
  }).then(() => {
    return 'complete'
  })
})
Run Code Online (Sandbox Code Playgroud)

所以我期望的是:

{isAdmin: true, hasUserModule: true}
Run Code Online (Sandbox Code Playgroud)

但是,当我打印出来的用户声明,似乎isAdmin: undefined,那么hasUserModule: true,它基本上会覆盖旧的权利,这是为什么?

node.js firebase firebase-authentication google-cloud-functions

4
推荐指数
1
解决办法
486
查看次数

Spring 控制器单元测试抛出 NestedServletException

我有一个 Spring 控制器,它在没有数据时抛出错误。我想测试自定义的异常NoDataFoundException,但它总是抛出org.springframework.web.util.NestedServletException

单元测试错误消息是: java.lang.Exception: Unexpected exception, expected<com.project.NoDataFoundException> but was<org.springframework.web.util.NestedServletException>

控制器单元测试

@RunWith(SpringRunner.class)
@ContextConfiguration(classes = {MockConfiguration.class})
@WebAppConfiguration
public class ModelControllerTest{

    private MockMvc mockMvc;

    @Inject
    private ModelController controller;

    @Inject
    private ResponseBuilder responseBuilder;

    @Before
    public void setUp() {
        mockMvc = MockMvcBuilders.standaloneSetup(controller).build();
    }

    @Test(expected = NoDataFoundException.class)
    public void findAllModels_invalidRequest_throwNoDataFound() throws Exception {
        when(responseBuilder.findAll(any())).thenReturn(null);
        mockMvc
        .perform(get("/models"))
            .andExpect(status().isInternalServerError());
    }

}
Run Code Online (Sandbox Code Playgroud)

控制器

@GetMapping("/models")
public ResponseEntity<List<Model>> findAllModels() {
    //Some Logic 
    dataExistenceCheck(response);
    return new ResponseEntity<>(response, HttpStatus.OK);
}

private <T> void dataExistenceCheck(T target) {
    if (target == …
Run Code Online (Sandbox Code Playgroud)

java junit4 spring-boot mockmvc

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