问题标签 [jsr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何使用 OR 条件验证 2 个字段?
我想以一个字段有效或另一个字段有效的方式验证请求类的两个字段。
例如:请求 Bean
控制器方法
在这里,我想检查 customerName 应该是 NotEmpty 还是 customerId 应该是 NotEmpty。那么我的验证应该通过。我该如何实现它。请推荐!!
spring - Spring批处理-当在编写器中抛出跳过异常时,JSR 352重试失败
我正在尝试调查在编写器中抛出异常时会发生什么。根据理论,我期望发生回滚,然后重试块设置提交大小为 1。但这没有发生,我收到以下错误。
我正在使用 Spring Batch -JSR 352 作业设计。在作者中,我有 3 个 JDBC 调用。如果我在成功执行 2 个 JDBC 调用后抛出一个可跳过的异常,那么我会发现 Spring 批处理无法回滚该块的事务并通过将提交大小设置为 1 来重试该块。我收到以下执行,之后整个块被跳过并且我们正在进行块提交。结果,已经写入 2 个 JDBC 表的数据被持久化,缺少第 3 个表数据。
我附上我的配置文件以供参考。通过调试,我可以发现我的插入语句正在由 spring 管理的事务下执行,我确信事务管理器配置没有问题
java - JSR 352 分区块处理
我正在尝试以 JSR 352 模式在 Spring Batch 中运行一个块步骤(读取器 - 处理器 - 写入器)。我想知道分区是否MyItemReader
为每个分区创建了批处理工件()的新实例,或者工件是否有状态(即工件中定义的全局变量被多个线程重用而不是线程安全的)?
谢谢
java - 如何使用 java.time.LocalDateTime 设置 jadira PersistentLocalDateTime?
我正在尝试坚持java.time.LocalDateTime
使用 Hibernate 和 JPA。我使用了 Jadira 框架(“org.jadira.usertype:usertype.core:3.2.0.GA”和“org.jadira.usertype:usertype.extended:3.2.0.GA”)。我创建了package-info.java
文件并在@TypeDefs({@TypeDef(defaultForType = java.time.LocalDateTime.class, typeClass = org.jadira.usertype.dateandtime.threeten.PersistentLocalDateTime.class)})
那里创建。我测试了解决方案,并且这些字段正确地以列(几乎java.time.LocalDateTime
)的形式存储/检索到我的 MySQL 数据库中。DATETIME
唯一的问题是数据库中的值与 Java 中字段的正确时间值相差 +2 小时。我在 CEST (UTC+2) 所以我明白这是时区的一些问题。我调试了代码,PersistentLocalDateTime
这就是我发现的。
PersistentLocalDateTime
正在使用org.jadira.usertype.dateandtime.threeten.columnmapper.AbstractTimestampThreeTenColumnMapper
AbstractTimestampThreeTenColumnMapper
字段ZoneOffset databaseZone
默认设置为ZoneOffset.of("Z")
(UTC)。- 因为它认为我的数据库在 UTC 时区(并且应用程序在 UTC+2),所以它在转换到数据库期间增加了两个小时(并在从数据库转换期间从我的时间中减去了两个小时)。所以在应用程序中我看到了正确的日期和时间,但在数据库中我没有。
我发现 a 可以添加参数,@TypeDef
所以我将它们指定如下:
但我有一个例外:
我又调试了一点。AbstractTimestampThreeTenColumnMapper
有两种方法:
getHibernateType
方法抛出异常,因为resolveCalendar
方法返回null
。为什么它会返回null
?java.time.ZoneOffset
因为来自和的时区 IDjava.util.TimeZone
不匹配。据我所知,匹配的唯一可能值是Z
. 任何其他值都会导致异常。
有什么方法可以正确设置吗?还是 Jadira 框架中的错误?
rest - jaxrs-api VS jsr311-api VS javax.ws.rs-api VS jersey-core VS jaxrs-ri
我已经用谷歌搜索了很多,仍然对上述每个内容的确切含义感到困惑。
以下是我对它的理解:
- jaxrs-api:仅包含 api。没有执行。但它与 JSR311 有何不同
- jsr311-api : JSR311 它是一个规范请求。这意味着它应该是一个文件。那为什么它是一个罐子呢?
- javax.ws.rs-api:它是一个实现吗?
- jersey-core(/jersey 客户端):是 JSR311 的实现。
我下载了每个 jar 并尝试反编译并查看其中的内容,但我只能在所有这些 jar 中找到接口而不是实现。
我在 maven shade 插件生成的重复警告的背景下面临这些问题,并且需要正确理解上述内容以确定要排除哪些以及为什么要排除。
java - 使用带有 HSM 私钥的 JSR 105 对 XML 文档进行 Java 签名
我需要使用 JSR 105 api 签署 XML 文档。我已经想出了如何使用标准提供程序来做到这一点,但现在我需要我的代码来支持 HSM。这是问题。
如果我像这样初始化签名:
如果我使用通过 HSM(SunPKCS11 提供者)获得的私钥,我会收到此异常/错误:
如果我用 SunPkcs11 提供者初始化签名工厂,这样:
我得到了这个例外:
我搜索了一下,发现 XML 签名中使用的提供程序必须具有 JSR 105 扩展名,但 SunPkcs11 似乎没有。如果它有一个,它会工作。
有谁知道,如何使用开源或 Java / Oracle 提供的代码来解决这种情况?
谢谢你,约瑟夫
java - 如何使用 JSR 注释组从 bean 获取属性?
我有一个可以跨不同屏幕共享的表单 bean(员工)。为了区分使用的屏幕中的字段,我计划使用带有组名的 JSR 自定义注释对字段进行分组。
例如,
我如何读取与组名(EmployeeScreen 和 RoleScreen)关联的 bean 的所有属性名。任何帮助将不胜感激。谢谢。
java - jvm 类重新加载建议,目前是否有任何 JSR 以它为目标?
我发现类重新加载将极大地提高生产力。我认为重新定义类是非常有限的。
多年来,我们发现了几种变通方法,以使用某种领域特定语言 (DSL) 或更自由的形式(如 XML 或 json 或属性文件)不断更改我们的应用程序的一部分,或者使用像 javascript 这样的脚本语言,function (){}
从字符串重新定义是可能并且很容易覆盖以前的函数定义。
我的想法:
注释可以使类可重新加载,或使类充当脚本,即.java 文件可以被视为DSL。
现在有人担心可重载类的引用可能会在其他地方有所帮助,这会在尝试卸载类时导致内存泄漏。
为了克服这个问题,应该强制执行一些限制。虽然这部分很难,但我们可以有接口契约,也可以通过注解。如果需要,可以为导出和依赖项强加一个合同,类似于 OSGi 描述符,但在使用拦截器或接口的类中。它应该比 OSGi 更简单,因为 OSGi 关心版本依赖匹配等,这不是每个类都需要的。
我觉得这个功能会非常方便,作为一个副产品,我们可以使用 java 作为配置文件,java 作为 DSL,而程序的大部分部分仍然是一个编译的单体,以具有足够的性能。
javascript 程序总是使用 javascript 或 json 作为配置描述符,这又是一种 javascript 对象表示法。我们应该能够在 java 或任何 jvm 语言中做同样的事情。
java模块系统是否专注于此?
注意:我觉得这不是一个问题格式,而是一个提案,从这个意义上说,它在错误的 QA 站点中。我不知道该搬到哪里,所以我在这里大声思考。建议把它移到哪里。
java - 将 JSR 提交给 JCP?
假设我想提交 JSR,我想在其中请求一些新 API 或对现有 API 进行一些优化
通过https://jcp.org/en/procedures/overview。看起来任何用户都无法提交 JSR。它可以由社区成员发起。 正确的 ?
我相信任何人都可以通过填写 JCP 网站上的表格来成为 JCP 会员,而且它是免费的。完成后,我可以提交 JSR 以供审核吗?
portlet - WebSphere Portal 阻止了直接的 portlet 访问
我正在尝试JSR 286
在 websphere 门户中部署一个 portlet。
部署顺利,但是当我尝试直接访问资源 url 时,我得到以下信息:
错误 403:WebSphere Portal 阻止了直接 portlet 访问
我对portlet 和websphere 很陌生。
有什么想法可能是错的吗?