标签: java-11

Lombok @getter 在 src/test/java 包中不起作用

我已经将 jdk 从 10 升级到 11,所有依赖项都更新为使用最新版本。使用 gradle 包装器进行编译时,它会引发以下错误

symbol: method getId() TestLombok.java:55: error: cannot find symbol object.setId(Long.valueOf(getRandomString(5, onlyNumbers)));

  • Gradle Wrapper Distribution 版本 5.4.1
  • JDK 11.0.2
  • 苹果机
  • 龙目岛 1.18.8

我尝试过各种版本的 lombok 但无法解决问题

  • 1.18.8
  • 1.18.4

以前我使用 lombok 1.18.2 和 annotationprocessor 1.18.2

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class User {

  @JsonProperty("id")
  public Long id;
}
Run Code Online (Sandbox Code Playgroud)

我希望 gradle5.xx 版本可以解决这些问题,但问题仍然存在。如果我们在使用 gradle 包装器版本时遇到任何问题,请告诉我。以下是我的 build.gradle 文件

buildscript {
    ext {
        springBootVersion = '2.1.1.RELEASE'
    }
    repositories {
        mavenCentral()
        jcenter()
        maven { url "https://plugins.gradle.org/m2/" }
        maven { url "https://jitpack.io" …
Run Code Online (Sandbox Code Playgroud)

java gradle lombok java-11

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

Java 11:导入 javax.xml.ws.WebFault:“无法解析符号 ws”

我正在尝试将服务升级到 Java 11。

我们目前使用 wsdl2java (Apache CXF) 来生成基于 WSDL 的源代码。我正在通过 Maven 完成这一切。源文件根据 wsdl 正确生成。

不幸的是,生成的一些源文件包括以下导入:

import javax.xml.ws.WebFault; 
import javax.jws.WebService;
Run Code Online (Sandbox Code Playgroud)

我缺少包 javax.xml.ws 和 javax.jws。

在我的研究中,我发现 Jaxb 从主 JDK 中被弃用,因此我需要在我的 pom.xml 文件中添加新的依赖项。我尝试了各种组合,但它们都归结为:

    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-core</artifactId>
        <version>2.3.0.1</version>
    </dependency>

    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.3.2</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

不幸的是,无论我做什么,我的 IDE 似乎都找不到 javax.xml.ws 和 javax.jws。

有谁知道我可能需要包含哪些依赖项才能获得这些包?

虽然它不是问题的核心,但这是我的 wsdl2java 内容:

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>3.3.2</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>${project.build.directory}/generated-sources/cxf/</sourceRoot>

                <wsdlRoot>src/main/webapp/resources/wsdl/fedex</wsdlRoot>
                <includes>
                    <include>**/*.wsdl</include>
                </includes>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions> …
Run Code Online (Sandbox Code Playgroud)

java wsdl wsdl2java jaxb java-11

7
推荐指数
1
解决办法
7313
查看次数

错误:java.xml (...) 的哈希值与 java.base 中记录的预期哈希值 (...) 不同

创建简单的 javafx 11“hello world”应用程序。\n创建自定义 JRE 时出现错误。

\n
user@user:~/Desktop/javafx/hellofx$ ./run.sh \nError: Hash of java.xml (c043b4c28b897656e2a4d36c92ba2f5d52134bce79643236dd36295e14178be7) differs to expected hash (4e7db7fc941d9f316c4aafe02717b5809ee722be8433d283050365e7fd49331f) recorded in java.base\n
Run Code Online (Sandbox Code Playgroud)\n

错误代码:

\n
$JAVA_HOME/bin/jlink --module-path $PATH_TO_FX_MODS:mods --add-modules hellofx --output hellofx #error\n
Run Code Online (Sandbox Code Playgroud)\n

操作系统:ubuntu 19.10

\n
$java --version\nopenjdk 11.0.6 2020-01-14\nOpenJDK Runtime Environment (build 11.0.6+10-post-Ubuntu-1ubuntu119.10.1)\nOpenJDK 64-Bit Server VM (build 11.0.6+10-post-Ubuntu-1ubuntu119.10.1, mixed mode, sharing)\n
Run Code Online (Sandbox Code Playgroud)\n
$javac --version\njavac 11.0.6\n
Run Code Online (Sandbox Code Playgroud)\n
user@user:~/Desktop/javafx/hellofx$ tree\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 mods\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 hellofx\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 hellofx\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 HelloFX.class\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 module-info.class\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 run.sh\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 hellofx\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 HelloFX.java\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 module-info.java\n\n5 directories, …
Run Code Online (Sandbox Code Playgroud)

java javafx jlink java-11 javafx-11

7
推荐指数
1
解决办法
3703
查看次数

Jackson databind:无法构造“java.time.OffsetDateTime”的实例

我正在将我的项目从 dropwizard 转移到 mirconuat,并且在使用 Web 服务响应时遇到异常。我尝试升级杰克逊版本,但失败并出现警告和以下原因。

Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `java.time.OffsetDateTime` (no Creators, like default constructor, exist): no String-argument constructor/factory method to deserialize from String value ('2020-06-25T05:56:44.044423+08:00')
 at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream); line: 1, column: 206] (through reference chain: com.Port["_ModifiedAt"])
    at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:67)
    at com.fasterxml.jackson.databind.DeserializationContext.reportBadDefinition(DeserializationContext.java:1615)
    at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400)
    at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1077)
    at com.fasterxml.jackson.databind.deser.ValueInstantiator._createFromStringFallbacks(ValueInstantiator.java:371)
    at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.createFromString(StdValueInstantiator.java:323)
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromString(BeanDeserializerBase.java:1408)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:176)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:166)
    at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:371)
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeWithObjectId(BeanDeserializerBase.java:1288)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:162)
    at com.fasterxml.jackson.databind.ObjectReader._bind(ObjectReader.java:2020)
    at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1179)
    at com.fasterxml.jackson.jaxrs.base.ProviderBase.readFrom(ProviderBase.java:810)
    at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.invokeReadFrom(ReaderInterceptorExecutor.java:256)
    at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:235)
    at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:155)
    at …
Run Code Online (Sandbox Code Playgroud)

jax-rs jackson fasterxml jackson-databind java-11

7
推荐指数
1
解决办法
7758
查看次数

无法访问类 jdk.xml.internal.JdkXmlUtils

我正在更新 hybris/SAP-Commerce (2005) 的旧公司实习生扩展。它是使用 API 的扩展。

我不知道这个扩展有多少年了。

但是,在将其应用于 java 11 时,我发现了这样的问题(Java 11: import javax.xml.ws.WebFault: "Cannot resolve symbol ws")。

重新运行命令 ./hybrisserver.sh 后,给定的(只读)“.jar”文件会引发以下异常:

Failed to instantiate [<class from given .jar>]:
            Constructor threw exception;
        nested exception is java.lang.IllegalAccessError:
            class com.sun.org.apache.xml.internal.resolver.Catalog (in unnamed module @0x9a92113) cannot access class jdk.xml.internal.JdkXmlUtils (in module java.xml) because module java.xml does not export jdk.xml.internal to unnamed module @0x9a92113
Run Code Online (Sandbox Code Playgroud)

我认为可能是jdk的问题,所以尝试了不同的发行版。(我正在使用 sdkman 开发 Manjaro Linux KDE 20.1)遵循我测试过的发行版:

 Vendor        | Version      | Dist    | Identifier
--------------------------------------------------------
 AdoptOpenJDK  | 11.0.8.j9    | …
Run Code Online (Sandbox Code Playgroud)

java java-11 sap-commerce-cloud

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

JAXB API 的 Java 8 到 Java 11 迁移问题

我们正在将项目从 Java 8 迁移到 Java 11。其中一个 API 依赖于使用 JAXB 的库。正如我们所知,JAXB 已从 JAVA 11 中删除,我们开始将 JAXB 依赖项包含在库的 POM 中。

 <!-- https://mvnrepository.com/artifact/jakarta.xml.bind/jakarta.xml.bind-api -->
  <!-- API -->
  <dependency>
    <groupId>jakarta.xml.bind</groupId>
    <artifactId>jakarta.xml.bind-api</artifactId>
    <version>2.3.3</version>
  </dependency>
  <!-- Runtime -->
  <dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-runtime</artifactId>
    <version>2.3.2</version>
  </dependency>
Run Code Online (Sandbox Code Playgroud)

当我们运行 API 项目时,一切正常

mvn spring-boot:运行

但是,当 API 部署在 QA 服务器中并使用启动脚本启动时 -

java -jar Sample-api-3.0.0-SNAPSHOT.jar

调用依赖于 JAXB 的库时,API 会引发以下错误 -

Caused by: javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
Run Code Online (Sandbox Code Playgroud)
  • 带有链接异常:
 [java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]
      at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:269)
      at javax.xml.bind.ContextFinder.find(ContextFinder.java:412)
      at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721) …
Run Code Online (Sandbox Code Playgroud)

jaxb maven java-8 spring-boot java-11

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

zookeeper - [NIOServerCnxn@383] - 导致会话 0x0 关闭的异常:Len 错误 1195725856

我正在尝试在我的 Windows 中安装 zookeeper。无论我在zookeeper + Kafka - Unable to create data directory 中遵循哪个建议,我都会收到以下错误。

我以管理员身份运行它,并尝试了所有这些选项:

#dataDir=/tmp/zookeeper
#dataDir=:\zookeeper-3.4.14\
#dataDir=C:\\_d\\WSs\\kafka\\zookeeper-3.4.14\\data
#dataDir=:\\\\zookeeper\\\\data
dataDir=C:\\_d\\WSs\\kafka\\zookeeper-3.4.14
Run Code Online (Sandbox Code Playgroud)

我认为这无关紧要,但让我在这里补充一下:我有 Java 11。

任何想法为什么会发生将不胜感激。

完整日志

C:\Windows\system32>zkserver

C:\Windows\system32>call "C:\Program Files\Java\jdk-11.0.2"\bin\java "-Dzookeeper.log.dir=C:\_d\WSs\kafka\zookeeper-3.4.14\bin\.." "-Dzookeeper.root.logger=INFO,CONSOLE" -cp "C:\_d\WSs\kafka\zookeeper-3.4.14\bin\..\build\classes;C:\_d\WSs\kafka\zookeeper-3.4.14\bin\..\build\lib\*;C:\_d\WSs\kafka\zookeeper-3.4.14\bin\..\*;C:\_d\WSs\kafka\zookeeper-3.4.14\bin\..\lib\*;C:\_d\WSs\kafka\zookeeper-3.4.14\bin\..\conf" org.apache.zookeeper.server.quorum.QuorumPeerMain "C:\_d\WSs\kafka\zookeeper-3.4.14\bin\..\conf\zoo.cfg"
2019-04-18 15:17:42,629 [myid:] - INFO  [main:QuorumPeerConfig@136] - Reading configuration from: C:\_d\WSs\kafka\zookeeper-3.4.14\bin\..\conf\zoo.cfg
2019-04-18 15:17:42,644 [myid:] - INFO  [main:DatadirCleanupManager@78] - autopurge.snapRetainCount set to 3
2019-04-18 15:17:42,644 [myid:] - INFO  [main:DatadirCleanupManager@79] - autopurge.purgeInterval set to 0
2019-04-18 15:17:42,644 [myid:] - INFO  [main:DatadirCleanupManager@101] - Purge task is not …
Run Code Online (Sandbox Code Playgroud)

apache-zookeeper java-11

6
推荐指数
1
解决办法
6621
查看次数

JDK11“jstat -gc &lt;PID&gt;”中的“CGC”和“CGCT”是什么意思?

有两个项目称为 CGC 和 CGCT。我找不到描述它们含义的文档和手册页。

# jstat -gc 139934
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT   
 0.0   15360.0  0.0   15360.0 113664.0  9216.0   88064.0    23552.0   82304.0 80084.2 10112.0 9360.4     10    0.157   0      0.000   6      0.018    0.175

# java -version 
openjdk version "11.0.2" 2019-01-15 LTS
OpenJDK Runtime Environment Corretto-11.0.2.9.3 (build 11.0.2+9-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.2.9.3 (build 11.0.2+9-LTS, mixed mode
Run Code Online (Sandbox Code Playgroud)

我使用了默认的 jvm 参数。

#jhsdb jmap --heap --pid 139934 | grep GC …
Run Code Online (Sandbox Code Playgroud)

java jvm jstat java-11

6
推荐指数
1
解决办法
1535
查看次数

未定义类型 Optional 的方法 isEmpty()

我有一个 spring 项目,我有一个布尔方法,它使用 optional 来过滤一组请求。当我尝试返回时出现错误request.isEmpty(),我查了一下,我可能使用的是旧版本的 Java,但是有没有其他方法可以说request.isEmpty()不必更新我的 Java 版本,因为我担心如果我更新它,它会影响我项目的其余部分

这是我的方法代码

private boolean hasNoDaysOffOnShiftDate(List<Request> requests, ShiftParams params) {

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // for string
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // for localdate

    // Shift start date in LocalDate
    String shiftDate = (params.start).format(formatter);
    LocalDate formatDateTime = LocalDate.parse(shiftDate, formatter);
    System.out.println("Shift date in date format " + formatDateTime);

    Optional<Request> request = requests.stream().filter(req -> req.getStatus() == Status.Accepted)
            .filter(req -> isDayOffOnShiftDate(req, formatDateTime)).findAny();
    return request.isEmpty();

}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

该isEmpty()类型的方法未定义Optional<Request>

我正在使用这个版本的java

java.version=1.8.0_73

java spring-mvc java-8 java-11

6
推荐指数
1
解决办法
4208
查看次数

部署时出现 JavaFX-11 错误:找不到模块

我正在尝试部署一个非常基本的 JavaFX 应用程序。我只是在创建一个新的 JavaFX 项目并尝试将其部署到 .exe,但它给了我一个未找到模块的错误。

这是控制台日志:

Buildfile: D:\eclipseProjects\Test\build\build.xml
setup-staging-area:
   [delete] Deleting directory D:\eclipseProjects\Test\build\externalLibs
   [delete] Deleting directory D:\eclipseProjects\Test\build\project
   [delete] Deleting directory D:\eclipseProjects\Test\build\projectRefs
    [mkdir] Created dir: D:\eclipseProjects\Test\build\externalLibs
     [copy] Copying 1 file to D:\eclipseProjects\Test\build\externalLibs
     [copy] Copying 1 file to D:\eclipseProjects\Test\build\externalLibs
     [copy] Copying 1 file to D:\eclipseProjects\Test\build\externalLibs
     [copy] Copying 1 file to D:\eclipseProjects\Test\build\externalLibs
     [copy] Copying 1 file to D:\eclipseProjects\Test\build\externalLibs
     [copy] Copying 1 file to D:\eclipseProjects\Test\build\externalLibs
     [copy] Copying 1 file to D:\eclipseProjects\Test\build\externalLibs
     [copy] Copying 1 file to D:\eclipseProjects\Test\build\externalLibs
    [mkdir] Created dir: D:\eclipseProjects\Test\build\project
     [copy] Copying …
Run Code Online (Sandbox Code Playgroud)

eclipse efxclipse module-info java-11 javafx-11

6
推荐指数
0
解决办法
228
查看次数