小编Har*_*ana的帖子

Spring Security BadCredentialsException如何映射到HTTP 401代码

当我抛出org.springframework.security.authentication.BadCredentialsException异常时,在客户端它将显示401如下,

{
  "timestamp": "2016-03-29T09:07:50.866+0000",
  "status": 401,
  "error": "Unauthorized",
  "message": "Some message",
  "path": "/test/service1/getAll"
}
Run Code Online (Sandbox Code Playgroud)

我想知道BadCredentialsException映射到HTTP 401状态代码的位置和方式?

java spring spring-security http-status-codes spring-boot

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

如何按名称获取html元素

有没有一种方法在java脚本中只获取一个特定的名称而不是使用document.getElementsByName("x");哪个返回一个数组?我有一种特殊的情况,我不能使用id.有什么建议吗?谢谢.

html javascript

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

在流过滤器中对流使用Java过滤器

我有ItemAddress课程:

public class Item {
    String name;
    List<Address> address;
}

public class Address {  
    String name;
    String lane;
}
Run Code Online (Sandbox Code Playgroud)

假设我有一个项目列表,并且想过滤泳道为的项目"lane1"

我在下面尝试,但在Eclipse中显示:

“类型不匹配:无法从流地址转换为布尔值”

items.stream().filter(a->a.getAddress().stream().
      filter(b->b.getLane().equals("lane1"))).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

3
推荐指数
1
解决办法
92
查看次数

为什么w3c.dom.Element根据字母顺序设置属性?

我正在使用org.w3c.dom.Element将元素添加到xml文件中.这里的问题是在设置属性时根据字母顺序而不是添加顺序.如何忽略这种行为?

谢谢.

java xml xmldocument dom

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

Sturts 2会话失效,将请求会话设置为新会话

在我的Struts应用程序中,一旦用户登录,我需要使当前会话无效并创建新会话.我用会话使会话无效

getHttpServletRequest().getSession().invalidate();
Run Code Online (Sandbox Code Playgroud)

我创建了一个新会话

getHttpServletRequest().getSession(true);
Run Code Online (Sandbox Code Playgroud)

这里的问题是上面我尝试访问getSession()它后给出状态无效异常; HttpSession是无效的.

getSession()返回一个地图,在我的动作类中我实现了SessionAware哪个有setSession(Map session).

编辑:以下是例外

Error creating HttpSession due response is commited to client. You can use the CreateSessionInterceptor or create the HttpSession from your action before the result is rendered to the client: HttpSession is invalid
java.lang.IllegalStateException: HttpSession is invalid
Run Code Online (Sandbox Code Playgroud)

所以,我认为问题是Struts getSession()仍然引用我已经失效的会话.

如何让Struts getSession()引用我创建的新会话?

java struts2 httpsession

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

了解EJB和Hibernate上下文中的事务

EJB默认处理事务管理,而在我看来,hibernate也处理事务.当我谈论一个事务时,我理解回滚数据库持久化操作就像功能一样.

我的问题是,如何同时使用EJB和Hibernate的应用程序选择支持一个事务提供程序?EJB和hibernate事务也可以同时工作吗?

java hibernate ejb

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

springboot 健康检查总是down

我正在使用弹簧靴健康。我只是想每次都弥补。所以我在下面补充,

@Component
public class AggregationHealth implements HealthIndicator { 
    @Override
    public Health health() {
        Health health = Health.up().build();
        logger.info("----------------------------Health status : " + health.getStatus() + "----------------------------");
        return health;
    }
}
Run Code Online (Sandbox Code Playgroud)

日志显示状态为向上,但是当我使用下面的 url 访问我的应用程序时,它显示为向下。

http://localhost:8085/health
Run Code Online (Sandbox Code Playgroud)

我还在我的 pom.xml 下面添加了,

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)

编辑:

一旦我添加"endpoints.health.sensitive=false"它给我下面的描述性错误,

{
  "status": "DOWN",
  "aggregationHealth": {
    "status": "UP"
  },
  "diskSpace": {
    "status": "UP",
    "free": 371498577920,
    "threshold": 10485760
  },
  "mongo": {
    "status": "DOWN",
    "error": "org.springframework.dao.DataAccessResourceFailureException: Timed out after 10000 ms while waiting to connect. Client view of cluster …
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot

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

@RequestHeader 请求参数和值所需的属性行为

我们可以使用 @RequestHeader 强制标头参数而不是值吗?

例如,如果我们使用,

@RequestHeader(value = "abc", required = true) 
Run Code Online (Sandbox Code Playgroud)

参数和它的值都必须存在。

编辑:假设我调用一些rest api,上面的请求标头参数带有“abc”,但没有值。因此,在这种情况下,我能够成功调用其余 api,因为即使我没有输入值,我仍然使用“abc”标头参数进行调用。由于某些治理工具规则,我需要有一个特定的标头参数,但我不想强迫用户输入任何值。

rest spring spring-mvc

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

SpringBoot项目的Redis max-active配置值

我已经为 Spring 启动应用程序实现了 redis。

我应该为 application.properties 中的以下配置输入什么值?

# <!-- Maximum active connections to Redis instance -->
spring.redis.pool.max-active=8
Run Code Online (Sandbox Code Playgroud)

文档中的默认值为 8。

然后,我将其设置为 1 并使用多个命中 redis repo 的调用进行测试。虽然我预计会出现错误消息,redis 连接不可用,但我没有收到任何错误。

我在这里缺少什么?

更新问题:

正如下面提到的 mp911de,我在我的 rest 控制器方法中添加了 @Transactional 并使线程等待 10 秒。

在启用 @Transactional 的情况下使用 Spring Data Redis 时,连接从第一次 Redis 访问开始绑定,直到事务提交/回滚。

我已将 spring.redis.pool.max-active 设置为 1,然后调用另一个使用 redis 的 rest api 方法,而第一个 rest 调用仍在等待。所以在这种情况下,我想得到连接不可用异常对吗?

java spring redis spring-boot

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

在构造函数上使用@Autowired

在构造函数上使用@Autowired的好处是什么,如下所示,

@Autowired
public MyClass(A a){
} 
Run Code Online (Sandbox Code Playgroud)

java spring

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