问题标签 [java-12]
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 - Java 12 上的 Apache Axis 1.4
我目前正在尝试从 Java 8 项目迁移到 Java 12。(希望)最后一个障碍是我们被迫使用的旧 WebService。在 Java 8 中“按原样”使用 WebService 本身不是问题,它已经工作了很多年。
wsdl 指出:
<!--Apache Axis 创建的WSDL 版本:1.4
建于 2006 年 4 月 22 日 -->
据我所知,新版本的 WSDL2JAVA 不再支持这种类型的服务(因为它们依赖于 Axis 2):
WSDLToJava 错误:CXF 不支持 Rpc/编码的 wsdls
为了使该服务可用(使用 Java 8和12),我需要以下库:
这就是问题发生的地方。该库定义了不再允许的部分包javax.xml,因为它是 Java 系统路径。有什么建议或解决方法吗?我忽略了什么吗?
编辑: ZhekaKozlov 不得不切换到jakarta是对的。现在还有一个错误,因为Axis2,在项目中也是需要的。
只需将其添加到新的 Java 12 项目中,就会使org.w3c.dom.*(例如 Document)无法使用。
EDIT2:我终于让一切正常了。程序正在运行,代码中没有任何错误。不幸的是,我无法测试应用程序的 Axis 部分,因为它所连接的服务只能在我们客户的环境中使用,因此必须对其进行测试。在axis2和axis2-adb上,我必须排除两个库:
他们分别阻止了 org.w3c.dom.* 和 javax.xml.stream.*。
java - 异步批量插入/更新表。Spring MVC,Java 8(或更高版本,Java 12)
我正在处理涉及 3 个表的业务需求:我们有 3 个数据库表
- 产品(60列)
- CATEGORIZED_PRODUCTS(60 列):从表 PRODUCTS 中复制匹配的记录
- 类别
每当用户创建新类别时,我们必须从表 PRODUCTS 中查询与该类别匹配的产品列表,匹配条件由表 PRODUCTS 中的过滤列列表定义,例如:颜色为黄色,重量小于 10 公斤等...
然后我们将使用表 PRODUCTS 的返回结果中的主键,并创建一个批量 INSERT 到表 CATEGORIZED_PRODUCTS
基本上,我们有 3 个 SQL 语句:
No. 1 > 从表 PRODUCTS 中查询匹配记录(这个由另一个 API 端点完成)
No. 2 > 在表 Category 中创建新记录
No. 3 > 从表 PRODUCTS 中创建记录到表 CATEGORIZED_PRODUCTS
问题是,查询匹配产品的 API 需要 22 秒才能响应 25000 条记录,而该 API 来自另一个项目。但是我们(即:多个微服务 API)共享同一个数据库。
我们不能在这里使用事务(例如@Transactional),因为这会使最终用户等待太久。
我们需要为最终用户提供流畅的前端行为,这样,我们就不想让他们等待。那我只能考虑使用后端非阻塞异步机制,Backend API在Category创建后立即返回response(即:此时,我们跳过上面的2和3)
然后,对 2 号和 3 号使用异步(在失败的情况下重试3 次),然后
我们正在使用 Spring Boot、Spring JPA、Java 12、MySQL。请建议我在这种情况下使用非阻塞异步实现一些指南。
使用独立的批处理作业项目不是一种选择,因为目前它超出了时间跨度(由于公司管理)以及系统基础设施的范围。我们也无法在数据库中创建存储过程或函数。
PS:如果“更新”一个类别,我们必须删除表 CATEGORIZED_PRODUCTS 中的记录,然后我们再次处理 2 号和 3 号。
在“删除”一个类别的情况下,我们必须删除表 CATEGORIZED_PRODUCTS 中的记录,然后我们再次处理 2 号和 3 号。
gradle - Javadoc 和 --enable-preview
我正在使用带有预览功能的 Gradle 6.0.1 和 JDK12。具有以下配置才能编译、运行和测试:
除了我定义如下的 javadoc 生成之外,这对所有的都适用:
运行时,gradle generateJavadocs
我收到新开关表达式的编译错误。有人让它与Javadoc一起工作吗?
java - Java获取余数与位移
众所周知,有一种享受可以得到余数:
m = 余数
n = 数量
d = 除数,一个正整数
米 = n & ( d - 1 )
它适用于 d = 2^k(k 是正整数)
对于 JDK 12,我使用 jmh 来测试效率:
结果表明 % 比 & 更有效,为什么:
java-12 - 无法在 java12 中创建字符串对象列表
这段代码在 Java11 中运行良好,但是当我在 Java12 中尝试时,它给出了一个错误 Cannot cast from List to ArrayList
有什么提示我缺少什么吗?
谢谢您的帮助。
java - 无法在 java12 中创建字符串对象列表
这段代码在 Java11 中运行良好,但是当我在 Java12 中尝试这个时,它给出了一个错误。
任何提示我错过了什么?
谢谢您的帮助。
要求的最小代码:
错误日志:
Error:(58, 42) java: incompatible types:java.util.List<java.lang.String> cannot be converted to java.util.List<java.lang.Object>
Java 版本 12、系统 windows 10 和 IDE intelij
java - 避免未命名的 lambda 参数
我有一个需要管理某些项目的优先级队列的应用程序,其中优先级本身实际上可以是小数(如 2.4 或 0.3)。与通常的整数优先级一样,越小越好。以下单行生成一个伪均匀分布在和之间的DoubleStream
带有DEFAULT_CAPACITY
- 多s 的:double
0
SCALE
我的问题是:如何避免_
lambda 中作为参数给出的未命名参数map
?不幸的是,Random::nextDouble()
is not static
,所以方法引用是不可能的。
当然,这个问题概括了:缺少static
方法并且给定已知的迭代次数,我们如何避免不必要的未命名 lambda 参数?实际上,实际上不需要生成中间件Stream
(调用的结果)。IntStream::range()
// 编辑:在仔细查看我的 IDE 之后,我注意到上面的语法实际上从 Java 9 开始就不可编译了!编译器说:从 Java 9 开始,'_' 是关键字,不能用作标识符。所以这个问题现在对我来说更加重要:)