当我抛出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脚本中只获取一个特定的名称而不是使用document.getElementsByName("x");哪个返回一个数组?我有一种特殊的情况,我不能使用id.有什么建议吗?谢谢.
我有Item和Address课程:
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) 我正在使用org.w3c.dom.Element将元素添加到xml文件中.这里的问题是在设置属性时根据字母顺序而不是添加顺序.如何忽略这种行为?
谢谢.
在我的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()引用我创建的新会话?
EJB默认处理事务管理,而在我看来,hibernate也处理事务.当我谈论一个事务时,我理解回滚数据库持久化操作就像功能一样.
我的问题是,如何同时使用EJB和Hibernate的应用程序选择支持一个事务提供程序?EJB和hibernate事务也可以同时工作吗?
我正在使用弹簧靴健康。我只是想每次都弥补。所以我在下面补充,
@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) 我们可以使用 @RequestHeader 强制标头参数而不是值吗?
例如,如果我们使用,
@RequestHeader(value = "abc", required = true)
Run Code Online (Sandbox Code Playgroud)
参数和它的值都必须存在。
编辑:假设我调用一些rest api,上面的请求标头参数带有“abc”,但没有值。因此,在这种情况下,我能够成功调用其余 api,因为即使我没有输入值,我仍然使用“abc”标头参数进行调用。由于某些治理工具规则,我需要有一个特定的标头参数,但我不想强迫用户输入任何值。
我已经为 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 调用仍在等待。所以在这种情况下,我想得到连接不可用异常对吗?
在构造函数上使用@Autowired的好处是什么,如下所示,
@Autowired
public MyClass(A a){
}
Run Code Online (Sandbox Code Playgroud) java ×8
spring ×5
spring-boot ×3
dom ×1
ejb ×1
hibernate ×1
html ×1
httpsession ×1
java-8 ×1
java-stream ×1
javascript ×1
redis ×1
rest ×1
spring-mvc ×1
struts2 ×1
xml ×1
xmldocument ×1