小编ket*_*eth的帖子

使用handlebars.js的逗号分隔字符串

这些天工作我正在使用handlerbars.js,它似乎很有趣.在那里,我需要你们的小帮助.

我有一个以下的json输入

"ALERTS": [
    {
        "alert_description": "ALCOHOL",
    },
    {
        "alert_description": "DIAGNOSIS",
    }
]
Run Code Online (Sandbox Code Playgroud)

我需要编写一个模板来创建以下逗号分隔的字符串.

ALCOHOL, DIAGNOSIS
Run Code Online (Sandbox Code Playgroud)

我能够使用以下模板逐行打印这些值.

<div>
   <div>
{{#each this}}
    <span>{{alert_description}}</span>
{{/each}}
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

你能帮助我解决这个问题吗?感谢您的帮助

谢谢Keth

handlebars.js

8
推荐指数
1
解决办法
3174
查看次数

使用MultiTenantConnectionProvider的Springboot多租户总是抛出org.apache.tomcat.jdbc.pool.PoolExhaustedException:

我已经开始转换我现有的Spring Boot(1.5.4.RELEASE)应用程序以使用多租户功能.它是一个基于模式的多租户解决方案,基于mysql.正如下面提到的hibernate文档

https://docs.jboss.org/hibernate/orm/4.2/devguide/en-US/html/ch16.html

我已经实现了MultiTenantConnectionProvider和CurrentTenantIdentifierResolver接口,它工作正常.

package com.ifi.aws.tenant.config.hibernate;

import org.hibernate.HibernateException;
import org.hibernate.engine.jdbc.connections.spi.MultiTenantConnectionProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.ifi.aws.tenant.entity.TenantContext;

import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.DataSource;

@Component
public class MultiTenantConnectionProviderImpl implements MultiTenantConnectionProvider {

  private static final long serialVersionUID = 6246085840652870138L;

  @Autowired
  private DataSource dataSource;

@Override
public Connection getAnyConnection() throws SQLException {
  return dataSource.getConnection();
}

@Override
public void releaseAnyConnection(Connection connection) throws SQLException {
  connection.close();
}

@Override
public Connection getConnection(String tenantIdentifier) throws SQLException {
  final Connection connection = getAnyConnection();
  try {
    connection.createStatement().execute( "USE " + tenantIdentifier …
Run Code Online (Sandbox Code Playgroud)

java hibernate multi-tenant spring-boot

8
推荐指数
1
解决办法
333
查看次数

jaxb解组日期

是否有任何简单的方法可以将日期解组为Java Date.

举一个例子,假设我们有下面的xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<msg>
<type>SCH</type>
<msgName>SCHEvent</msgName>
<eventName>BST001</eventName>
<startDatetime>2012-09-12 11:00:00</startDatetime>
<endDatetime>2012-09-12 11:30:00</endDatetime>

</hl7msg>
Run Code Online (Sandbox Code Playgroud)

我想将这个xml解组到以下POJO中

@XmlRootElement(name = "msg")
public class SCHEvent {

Date startDatetime;
Date endDatetime;
----
}
Run Code Online (Sandbox Code Playgroud)

我试过上面的解组,我发现所有其他属性都被分配到这个pojo除了日期.我想我们可以使用XmlAdapter修复此问题,但这需要额外的类来创建.有没有简单的方法将这个xml文本日期转换为Java日期?

jaxb jaxb2

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

HTTP状态代码401,即使我正在发送授权请求标头

最近我在我的Springboot和基于Angualr2的应用程序中引入了JWT身份验证.在那里我尝试通过在我的Angualr代码中传递如下的JWT令牌来执行POST请求

save(jobId: number, taskId: number, note: Note) {

   return this.http.post(environment.APIENDPOINT + '/jobs/' + jobId + '/tasks/' + taskId + '/notes', note, this.setHeaders()).map((response: Response) => response.json());

}
Run Code Online (Sandbox Code Playgroud)

private setHeaders() {
        // create authorization header with jwt token
        let currentUser = JSON.parse(localStorage.getItem('currentUser'));
        console.log("Current token---"+ currentUser.token);
        if (currentUser && currentUser.token) {

  let headers = new Headers();
  headers.append('Content-Type', 'application/json');
  headers.append('authorization','Bearer '+ currentUser.token);
            
   let r = new RequestOptions({ headers: headers })
   return r;

        }
    }
Run Code Online (Sandbox Code Playgroud)

但是在服务器端它返回状态代码401.问题是在Springboot端它检查授权头如下,它返回null

String authToken = request.getHeader("authorization ");
Run Code Online (Sandbox Code Playgroud)

然后,我查看了请求标头,并在Access-Control-Request-Headers下具有授权标头,如下所示.但它对服务器端是不可见的.

在此输入图像描述

然后我进一步阅读并发现这可能是CORS配置的问题.所以我修改了我的CORS配置过滤器以使addExposedHeader如下所示

@Bean
public …
Run Code Online (Sandbox Code Playgroud)

javascript httprequest cors spring-boot angular

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

具有Java 8 LocalDateTime的Spring Data JPA

最近几个月,我一直在使用Spring Data JPA和MYSQL,这是非常成功和流畅的经验。在这里,我正在使用Java 8 LocalDateTime存储日期时间字段,而JPA会自动将这些字段映射到mysql tinyblob列。

最近,我要求通过脚本向系统中添加一些数据。为了填充日期时间列,我创建了MYSQL TIMESTAMP变量并将其插入tinyblob列。但是,系统开始抱怨SerializationException,其根本原因是此转换的datetime列。然后我看看通过应用程序插入的日期时间列,如下所示

select CAST(drop_off_time AS CHAR(10000) CHARACTER SET utf8) From job
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

当您通过应用程序插入时,它看起来像是某种Java序列化插入。但是,通过mysql脚本,我们无法复制该功能。

现在我有两个选择。1)我需要找到一种写mysql脚本来生成类似于应用程序的Date time列的方法。2)我需要将Spring数据JPA映射从tinyblob更改为mysql脚本可以支持的另一种数据类型

感谢你的帮助

谢谢,凯斯

编辑

在遵循以下提供的答案和评论之后,我能够找到一个简单的解决方案

如果您使用的是Hibernate 5.0+,则可以插入

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-java8</artifactId>
    <version>${hibernate.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

然后系统开始将Java 8 LocalDateTime属性映射到mysql DATETIME列

mysql jpa java-8 spring-data spring-data-jpa

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

在 Tomcat 中处理夏令时无需重启服务器

我有一个在 Tomcat 上运行的 Java Web 应用程序,用于为客户端创建计划事件。我有一个关于底层操作系统、Tomcat 和 JVM 的默认日期时间的问题。

当我Date通过 Java 代码检索它时,它类似于底层操作系统。然后我更改了操作系统时间只是为了模拟夏令时效果,但应用程序并没有反映操作系统时间。

然后我阅读了更多关于它的内容,发现 JRE 负责维护 JVM 的日期时间。但是,当我重新启动 tomcat 时,它开始反映操作系统时间。

有人可以解释一下这背后的理论吗?作为我的阅读,我们可以使用 TZupdater 更新 JRE 的最新日期时间更改,系统将处理夏令时而无需重启 tomcat。

java datetime tomcat dst

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