小编joh*_*ohn的帖子

ZonedDateTime.withZoneSameInstant 和 ZonedDateTime.withZoneSameLocal 有什么区别?

假设我有一个 ZonedDateTime:

ZonedDateTime zonedDateTime = 
     ZonedDateTime.of(LocalDateTime.now(), ZoneId.of("US/Pacific"));
Run Code Online (Sandbox Code Playgroud)

我想知道它是在柏林的哪个日期/时间。我有两种方法:

zonedDateTime.withZoneSameInstant(ZoneId.of("Europe/Berlin")); // probably this is the right one to get the corresponding date/time in Berlin

zonedDateTime.withZoneSameLocal(ZoneId.of("Europe/Berlin"));
Run Code Online (Sandbox Code Playgroud)

withZoneSameLocal方法的文档说:“仅当本地日期时间对新区域无效时才会更改......”并且不清楚何时真的会发生(任何示例?=))。

它们各自代表哪个日期/时间,有什么区别?

java java-time

12
推荐指数
1
解决办法
5487
查看次数

fromAuthHeaderAsBearerToken 在 NODE 中不起作用

我对 Node.js 中的护照身份验证做了以下工作。

1) 我正在使用 jwtFromRequest : ExtractJwt.fromAuthHeaderAsBearerToken(),

module.exports = function(passport){
    var opts = {};
    opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
    opts.secretOrKey = config.secret;
    console.log('Inside passport');
    //opts.issuer = 'accounts.examplesoft.com';
    //opts.audience = 'yoursite.net';
    passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
        console.log('Payload :: '+jwt_payload._doc);
        User.getUserById({id: jwt_payload._doc._id}, function(err, User) {
            if (err) {
                return done(err, false);
            }
            if (User) {
                return done(null, User);
            } else {
                return done(null, false);
                // or you could create a new account
            }
        });
    }));
Run Code Online (Sandbox Code Playgroud)

2)调用方法如下:

userExpressRoutes.route('/profile')
    .get(passport.authenticate('jwt', { session: false }), …
Run Code Online (Sandbox Code Playgroud)

authentication node.js postman passport-jwt

11
推荐指数
2
解决办法
8340
查看次数

Git和IntelliJ行分隔符问题

我正在IntelliJ 15.0.3使用Git通过Git Bash(提交和推送更改).当我fetch从远程git存储库提交文件时,它包含不同的行分隔符(混合模式或如何调用它).我的意思是一些行结束,CRLF一些行以LF(相同的文件)结束.

当我在IDEA中进行更改时 - 文件会自动保存,并且所有行分隔符都会减少(更改)为IDEA默认行分隔符(LF对我来说).

并且git将这些更改视为对文件的更改,因此我提交了大量更改的文件:

- some line
+ some line
Run Code Online (Sandbox Code Playgroud)

因为some line [CRLF]改成了some line [LF].

如何配置Git忽略此配置或如何配置IntelliJ IDEA为在此混合模式下保留文件?我不想在没有变化时提交更改.

git intellij-idea

9
推荐指数
1
解决办法
9580
查看次数

如何使用 Quarkus Panache 仅选择某些字段?

Quarkus简化了 Hibernate ORM 映射与Panache.

entity这是我的和的示例PanacheRepository

@Entity
public class Person {
    @Id @GeneratedValue private Long id;
    private String firstName;
    private String lastName;
    private LocalDate birth;
    private Status status;
}

@ApplicationScoped
public class PersonRepository implements PanacheRepository<Person> {

   // example
   public Person findByName(String name){
       return find("name", name).firstResult();
   }


   // ! and this is what I tried, but it's not possible to do it this way
   // all the methods return Person or something of type Person like …
Run Code Online (Sandbox Code Playgroud)

java quarkus quarkus-panache

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

如何在没有实体和 JPA 存储库的情况下在 Spring 中运行本机 SQL 查询?

我正在尝试在我的 Spring 应用程序中运行一些本机 SQL 查询。我没有实体或JpaRepository类。我知道这很奇怪,但这是一个微服务,只是为了收集两个计数查询并将其发送给 Kafka。

相信我,我所需要的只是查询中的这两个整数。我运行这些代码总是返回0。我可以在日志中看到Hikari 正在连接到数据库,所以我不知道该怎么做。搜索了很多,但所有答案都涉及@Query解决方案,这对我不起作用。

@Repository
@AllArgsConstructor
public class ReportRepository {


  private final EntityManager em;

  public int numberOfAccounts() {
    String sql = "SELECT count(*) FROM account";
    Query query = em.createNativeQuery(sql);
    System.out.println(query.getFirstResult());
    return query.getFirstResult();
  }

  public int numberOfSubscriptions() {
    String sql = "SELECT count(*) FROM subscriptions";
    Query query = em.createNativeQuery(sql);
    System.out.println(query.getFirstResult());
    return query.getFirstResult();
  }
}
Run Code Online (Sandbox Code Playgroud)

java sql hibernate spring-data-jpa

7
推荐指数
2
解决办法
5757
查看次数

我该如何测试EJB 3.0?

我使用的是EJB 3.0,Oracle WebLogic.

在以下问题中需要帮助:

如何测试EJB(3.0)?我的意思是单元测试和/或集成测试?我可以使用某种嵌入式EJB容器或为它创建一个模拟来编写单元测试吗?也许有一些特殊的测试框架或aproaches?EJB对我来说并不新鲜,但我从未为它们编写测试.任何信息对我都有用.

谢谢.

integration-testing unit-testing ejb java-ee

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

通过构造函数进行依赖注入不适用于 EJB bean

我的应用程序正在部署到 IBM WebSphere 上。我有一个简单的服务,我想知道在这种情况下依赖注入是如何工作的。

// stateless EJB
@Stateless
public class UserService {

    private UserDAO userDAO;

    // btw, UserDAO is stateless EJB as well
    @Inject
    public UserService(UserDAO userDAO) {
        this.userDAO = userDAO;    
    }

    // biz methods ...
}
Run Code Online (Sandbox Code Playgroud)

它失败并出现以下错误:

[错误] CWWKZ0002E:启动应用程序 my-app 时发生异常。异常消息为: com.ibm.ws.container.service.state.StateChangeException: com.ibm.ws.cdi.CDIException: com.ibm.wsspi.injectionengine.InjectionException: com.ibm.ejs.container.EJBConfigurationException: EJB com.demo.app.UserService 类必须有一个不带参数的公共构造函数

我记得 EJB 规范中有这样一句话:bean 实例首先由容器实例化,然后完成依赖注入,the class must have a public constructor that takes no parameters这对我来说是有意义的。

另一方面,我在 WELD 文档中发现了这一点:

首先,容器调用 bean 构造函数(默认构造函数或带 @Inject 注释的构造函数)来获取 bean 的实例。

我有点困惑,为什么我的EJB无法实例化。

当我们有构造函数注入点时,如何创建 EJB 实例并注入依赖项? …

java dependency-injection ejb weld jakarta-ee

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

如何修改Spring存储库搜索REST API的页面类型结果?

我有一个 HotelRepository,它有一个命名方法,它返回一个默认Page<Hotel>项作为结果而不是一个列表。

我想将内容类型更改HotelHotelDto在页面中,因为 DTO 具有我想要显示的自定义参数。我已经有一个构造函数可以将 Hotel 转换为 HotelDto。

我的尝试:

Page<Hotel> hotels = dao.findAll(pageRequest);
return new PageImpl<>(
                hotels.getContent().stream()
                        .map(hotel -> new HotelListItemDto(hotel, hotel.getSupplier())).collect(Collectors.toList()),
                pageRequest, hotels.getContent().size());
Run Code Online (Sandbox Code Playgroud)

问题是它只操作结果的一页。当然,我可以先把所有的结果作为一个列表,然后根据列表创建一个页面,但是这样就失去了Page(我认为返回页面会提高搜索请求的性能)的优势。

那么我应该怎么做才能保持页面优势,但仍然可以自定义输出?

java spring pagination

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

JAXB空元素解组

问题在于:

我在内部使用空元素获取soap响应(例如... <someDate /> ...),因此当JAXB想要解析此元素而不是使用null值设置适当的字段时抛出异常.

如何配置JAXB将空元素视为null?我们能否仅使用JAXB执行此操作(不使用某些第三方解决方法)

java xml exception jaxb

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

无法使用打字稿将任何参数传递给反应查询中的变异函数

我正在尝试使用react-query并向axios后端发送发布请求来注册用户,但是当我尝试通过单击按钮来触发参数突变时,我收到错误。

import React from 'react'
import { useMutation } from '@tanstack/react-query'
import axios from 'axios'
import { Button } from 'react-bootstrap'

const RegisterScreen = () => {
  const { data, error, isLoading, mutate } = useMutation((user) =>
    axios.post('/api/users', user)
  )

  const user = { name: 'john', email: 'john@example.com', password: '1234' }

  return (
    <div>
      <Button onClick={() => mutate(user)}>Register</Button>
    </div>
  )
}

export default RegisterScreen
Run Code Online (Sandbox Code Playgroud)

错误信息:

ERROR in src/screens/RegisterScreen.tsx:15:37
[1] TS2345: Argument of type '{ name: string; …
Run Code Online (Sandbox Code Playgroud)

javascript typescript reactjs react-query

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