首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >行动中的骆驼由Manning出版

行动中的骆驼由Manning出版
EN

Stack Overflow用户
提问于 2021-01-26 15:05:23
回答 3查看 85关注 0票数 0

我正在根据克劳斯·易卜生的书学习骆驼,我想听听你对此的建议。

我从边上拿到了书和代码。

在chapter1中,它会显示run:

代码语言:javascript
复制
C:\camelinaction-master\chapter1\file-copy>mvn compile exec:java -Dexec.mainClass=camelinaction.FileCopierWithCamel

它产生的错误是:

代码语言:javascript
复制
[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

因为我在这本书的一开始就遇到了这个问题,所以我想在我开始调试这个问题之前,问一下书中的代码是否还在工作,或者它是不是太旧而没有维护,也许是好的。如果不是这样,那么解决这个问题是值得的,否则,是否有您使用过的更新的学习材料和良好的经验?

EN

回答 3

Stack Overflow用户

发布于 2021-01-26 17:22:00

JAXB API被认为是Java EE API,因此在Java SE 9中不再包含在默认类路径中。在Java 11中,它们已从JDK中完全删除。(引用自Java: How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException )

尝试使用Java 8。

票数 1
EN

Stack Overflow用户

发布于 2021-01-26 19:55:46

UPDATE:正如克劳斯(本书的作者之一)指出的那样,书中的源代码存储库中有针对Camel3.x版本的分支:

https://github.com/camelinaction/camelinaction2/tree/camel37

3.x支持Java LTS版本: 8、11或14,但不正式支持非LTS Java版本。

正如Kristof所建议的,简短的答案是使用Java 8。

除此之外,《骆驼行动》一书(第二版)使用Camel2.x,并且它只支持Java 8,否则示例代码将无法工作。

如果你真的想使用更高的Java版本(11或更高版本),你应该使用Camel 3.x (到目前为止的最新版本是3.7.1)。由于这是一次重大升级,因此您需要进行一些迁移工作,才能使示例代码在Camel3.x上运行。具体操作请参考以下官方迁移/升级指南:

https://camel.apache.org/manual/latest/camel-3-migration-guide.html

https://camel.apache.org/manual/latest/camel-3x-upgrade-guide.html

票数 0
EN

Stack Overflow用户

发布于 2021-01-27 13:12:40

谢谢克劳斯·易卜生。

有了新源文件的链接,我就可以继续学习了。

https://github.com/camelinaction/camelinaction2/tree/camel37

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65897117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档