gpt4 book ai didi

javac 找不到符号构造函数服务

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:35:56 50 4
gpt4 key购买 nike

我正在借助这个 Apache CXF Web Service Development 学习 CXF本书,但是,唉,本书的示例项目之一甚至无法编译!

有问题的代码是第 3 章的contractfirst,这不是错字问题,因为我使用的是从 the book's support site 下载的源代码。 .

这 3 个编译错误实际上指向一个问题:

Chapter3\contractfirst\src\demo\order\OrderProcessService.java:52: cannot find symbol
symbol: constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[])
location: class javax.xml.ws.Service
super(WSDL_LOCATION, SERVICE, features);
^

在文件 OrderProcessService.java 中。

初始重新search表明这可能是 JAX-WS 2.2 vs. 2.1问题,但我不知道如何使这个基于 ANT 的编译环境“认可”JAX-WS 2.2。

我尝试在 %JAVA_HOME%\lib\endorsed 中放置一个 jaxws-api.jar 并尝试将该 jar 添加到项目的库列表中,但似乎没有任何帮助.

我没有使用 Maven ,所以我什至不能将它列为依赖项,希望这会神奇地解决。

知道如何解决这个问题吗?这样我就可以构建这个非常简单的项目?

最佳答案

根据您的描述,这听起来与描述的问题相似 in this post .

为了解决这个问题,你可以简单地复制jaxb-api.jarjaxws-api.jar到JDK的JRE的/lib/认可

注意“认可”意味着将相关的 JAR 文件(本例中为 jaxb-api.jar、jaxws-api.jar)放在 %JAVA_HOME%\jre\lib\endorsed 中(注意路径中的 jre)。 不要直接在 JDK 的 lib 目录下创建 endorsed 目录。

或者...如果您不想接触 JDK 安装,请使用这些环境变量使用 wsimport 和 wsgen(其中 JAXWS_HOME 指向 JAX-WS 2.1 安装):

WSIMPORT_OPTS=-Djava.endorsed.dirs=%JAXWS_HOME%/lib
WSGEN_OPTS=-Djava.endorsed.dirs=%JAXWS_HOME%/lib

或者...如果您使用 ant 任务,您可以在调用 wsimport 和 wsgen ant 任务时将 -Djava.endorsed.dirs=%JAXWS_HOME%/lib 作为 jvmarg 传递(为此,您需要设置 wsimport 和 wsgen ant 任务的 fork="true"属性)。

归功于 Rama Pulavarthi .

关于javac 找不到符号构造函数服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14131503/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com