【问题标题】:javac cannot find symbol constructor Servicejavac找不到符号构造函数服务
【发布时间】:2012-12-17 09:04:33
【问题描述】:

我正在借助这本书 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 中。

最初的 research 表明这可能是一个JAX-WS 2.2 vs. 2.1 问题,但我不知道如何让这个基于 ANT 的编译环境“支持”JAX-WS 2.2。

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

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

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

【问题讨论】:

  • 您使用什么版本的 Java 来构建您的示例?
  • 你提到的源代码在 Java 1.6、Ant 1.8.2、Mac OS X 10.7.5 上对我来说构建得很好。您能否确认您的系统统计信息,并且您没有以任何方式修改下载的源项目?
  • @Perception CXF 版本更为关键,正如stackoverflow.com/questions/10448329/… 所暗示的那样

标签: java ant jax-ws cxf endorsed


【解决方案1】:

支持 jaxws-api jar 的 2.2 版本应该可以工作。您还可以将“-fe jaxws21”标志传递给 CXF wsdl2java 命令,以使其生成 2.1 兼容代码。

【讨论】:

    【解决方案2】:

    根据您的描述,这听起来类似于in this post 描述的问题。

    要解决这个问题,您可以简单地将jaxb-api.jarjaxws-api.jar 复制到 JDK 的 JRE 中 /lib/endorsed

    注意,“背书”是指将相关的 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

    【讨论】:

    • %JAVA_HOME%\jre\lib(相对于我所做的是 %JAVA_HOME%\lib)就是它。谢谢。
    【解决方案3】:

    %JAVA_HOME%\jre\lib\endorsed 中单独添加 webservices-api-2.2.jar 已为我解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-16
      • 2012-05-23
      • 1970-01-01
      • 2018-04-13
      • 2017-03-21
      • 1970-01-01
      • 2012-11-12
      相关资源
      最近更新 更多