Java 曼宁出版的《骆驼在行动》
我正在学习克劳斯·易卜生的著作《骆驼》,我想听听你对这方面的建议 我从侧面拿到了书和密码 在第1章中,它说运行:Java 曼宁出版的《骆驼在行动》,java,maven,apache-camel,Java,Maven,Apache Camel,我正在学习克劳斯·易卜生的著作《骆驼》,我想听听你对这方面的建议 我从侧面拿到了书和密码 在第1章中,它说运行: C:\camelinaction-master\chapter1\file-copy>mvn compile exec:java -Dexec.mainClass=camelinaction.FileCopierWithCamel 它产生的错误是: [ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plug
C:\camelinaction-master\chapter1\file-copy>mvn compile exec:java -Dexec.mainClass=camelinaction.FileCopierWithCamel
它产生的错误是:
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.1.1:java (default-cli) on project chapter1-file-copy: An exception occured while executing the Java class. null: InvocationTargetException: javax/xml/bind/annotation/XmlRootElement: javax.xml.bind.annotation.XmlRootElement -> [Help 1]
我正在使用
java 15.01和
mavem 3.3.5
因为我在本书的一开始就发现了这个问题,所以在我开始调试这个问题之前,我想问一下本书中的代码是否仍然有效,或者它是否太旧了,没有维护?如果情况并非如此,则值得解决该问题,否则是否有您使用过的更新的学习材料和良好的使用经验?JAXB API被视为Java EE API,因此不再包含在Java SE 9的默认类路径中。在Java11中,它们完全从JDK中删除。(引自)
尝试使用Java8。更新:正如克劳斯(本书作者之一)所指出的,Camel 3.x版本在书的源代码库中有分支:
3.x支持Java LTS版本:8、11或14,但不正式支持非LTS Java版本
正如克里斯托夫所建议的,简短的答案是使用Java8 除此之外,Camel-In-Action手册(第二版)使用Camel 2.x,它只支持Java8,否则示例代码将无法工作 如果您真的想使用更高的Java版本(11及更高版本),那么应该使用Camel 3.x(目前最新的版本是3.7.1)。因为这是一个主要的升级,所以您需要进行一些迁移工作,以便使示例代码在Camel 3.x中运行。请参阅以下官方迁移/升级指南以了解操作方法:
谢谢克劳斯·易卜生 有了新源文件的链接,我可以继续学习了
请首先提供使用插件最新版本的信息,以及使用哪一版本的Maven,因为Maven 3.3.5不存在……本书的源代码中有Camel 3.x的分支,例如3.7位于:这支持java 8、11或14。我们不支持使用Camel的非LTS Java版本(官方)