问题标签 [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.

0 投票
1 回答
2263 浏览

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 812),我需要以下库:

这就是问题发生的地方。该库定义了不再允许的部分包javax.xml,因为它是 Java 系统路径。有什么建议或解决方法吗?我忽略了什么吗?

编辑: ZhekaKozlov 不得不切换到jakarta是对的。现在还有一个错误,因为Axis2,在项目中也是需要的。

只需将其添加到新的 Java 12 项目中,就会使org.w3c.dom.*(例如 Document)无法使用。

EDIT2:我终于让一切正常了。程序正在运行,代码中没有任何错误。不幸的是,我无法测试应用程序的 Axis 部分,因为它所连接的服务只能在我们客户的环境中使用,因此必须对其进行测试。在axis2和axis2-adb上,我必须排除两个库:

他们分别阻止了 org.w3c.dom.* 和 javax.xml.stream.*。

0 投票
0 回答
903 浏览

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 号。

0 投票
1 回答
275 浏览

java - 将 OpenJDK 12 安装到 Eclipse 2019-12 时出现问题

我有一台新笔记本电脑并安装了 Eclipse 2019-12。我还下载了 OpenJDK12 (12.0.1),因为我有一个需要该版本的项目。我已将 jdk 解压缩到 C:\Program Files\java\jdk-12.0.1。但是,当我尝试将版本添加到 Eclipse 时,我收到以下错误: Target is not a JDK Root。未找到 Java 可执行文件

在此处输入图像描述

我无法安装 Java 12 2019-03 支持补丁,因为它告诉我它与我的版本不兼容。任何人都可以提供一些建议吗?

0 投票
2 回答
543 浏览

gradle - Javadoc 和 --enable-preview

我正在使用带有预览功能的 Gradle 6.0.1 和 JDK12。具有以下配置才能编译、运行和测试:

除了我定义如下的 javadoc 生成之外,这对所有的都适用:

运行时,gradle generateJavadocs我收到新开关表达式的编译错误。有人让它与Javadoc一起工作吗?

0 投票
0 回答
97 浏览

java - Java获取余数与位移

众所周知,有一种享受可以得到余数:

m = 余数

n = 数量

d = 除数,一个正整数

米 = n & ( d - 1 )

它适用于 d = 2^k(k 是正整数)

对于 JDK 12,我使用 jmh 来测试效率:

结果表明 % 比 & 更有效,为什么:

0 投票
1 回答
542 浏览

java - 如何在eclipse中导入javafx?

如何在 Eclipse 中导入 javafx?为什么默认不添加jre或jdk?java中推荐的表单库是什么?

我已经安装了 e(fx)clipse 3.6.0 插件,但它没有帮助。

这是我的项目库的屏幕截图。 在此处输入图像描述

0 投票
1 回答
36 浏览

java-12 - 无法在 java12 中创建字符串对象列表

这段代码在 Java11 中运行良好,但是当我在 Java12 中尝试时,它给出了一个错误 Cannot cast from List to ArrayList

有什么提示我缺少什么吗?

谢谢您的帮助。

0 投票
0 回答
155 浏览

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

0 投票
0 回答
100 浏览

rest - jaxrs-ri-2.30 在使用 Java 12 在 Tomcat 9 中运行 REST Web 服务时未将 xml 转换为 Pojo

我在本地安装的 tomcat 9 中运行带有 JAX-RS 实现的 Rest web 服务,并在我的系统中安装了 Java 12。我可以使用 JSON 有效负载调用接受 POST 请求的方法。但无法使用 XML 有效负载调用相同的方法。

需要帮助来解决此问题。

以下是我的项目详情:

pom.xml 依赖项:

部署描述符(web.xml):

客户 Pojo (Customer.java):

资源(CustomerResource.java):

POST 请求详细信息:

请求正文:

请求标头:

在此处输入图像描述

0 投票
1 回答
196 浏览

java - 避免未命名的 lambda 参数

我有一个需要管理某些项目的优先级队列的应用程序,其中优先级本身实际上可以是小数(如 2.4 或 0.3)。与通常的整数优先级一样,越小越好。以下单行生成一个伪均匀分布在和之间的DoubleStream带有DEFAULT_CAPACITY- 多s 的:double0SCALE

我的问题是:如何避免_lambda 中作为参数给出的未命名参数map?不幸的是,Random::nextDouble()is not static,所以方法引用是不可能的。

当然,这个问题概括了:缺少static方法并且给定已知的迭代次数,我们如何避免不必要的未命名 lambda 参数?实际上,实际上不需要生成中间件Stream(调用的结果)。IntStream::range()

// 编辑:在仔细查看我的 IDE 之后,我注意到上面的语法实际上从 Java 9 开始就不可编译了!编译器说:从 Java 9 开始,'_' 是关键字,不能用作标识符。所以这个问题现在对我来说更加重要:)