【问题标题】:Lombok and Web services: A WSDL Definition could not be generated for the implementation classLombok 和 Web 服务:无法为实现类生成 WSDL 定义
【发布时间】:2017-05-29 15:45:16
【问题描述】:

我正在使用 IBM Rational Developer 和 Websphere Application Server

我正在通过企业应用程序中的注释开发 Java Web 服务(使用 jax-ws),我有一个 EJB 项目、一个发布 Web 服务的 Web 项目和一个包含这两个模块的 EAR。当我将 EAR 部署到 WAS 时,我收到以下错误消息:

[26/05/17 16.37.38:254 CEST] 00000057 WSModuleDescr E   WSWS7027E: Impossibile creare correttamente le descrizioni del servizio JAX-WS a causa del seguente errore: javax.xml.ws.WebServiceException: WSWS7054E: Impossibile generare il file WSDL (Web Services Description Language) per la classe di implementazione del servizio Web it.bz.prov.as400.personal.logic.AnagraficaImpl a causa del seguente errore: java.lang.Exception: A WSDL Definition could not be generated for the implementation class: it.bz.prov.as400.personal.logic.AnagraficaImpl
at com.ibm.ws.websvcs.wsdl.WASWSDLGenerator.generateWsdl(WASWSDLGenerator.java:262)
at org.apache.axis2.jaxws.description.impl.EndpointDescriptionImpl.generateWSDL(EndpointDescriptionImpl.java:2084)
at org.apache.axis2.jaxws.description.impl.EndpointDescriptionImpl.<init>(EndpointDescriptionImpl.java:434)
at org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl.<init>(ServiceDescriptionImpl.java:401)
at org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl.<init>(ServiceDescriptionImpl.java:297)
at org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescriptionFromDBCMap(DescriptionFactoryImpl.java:273)
at org.apache.axis2.jaxws.description.DescriptionFactory.createServiceDescriptionFromDBCMap(DescriptionFactory.java:524)
at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.buildJAXWSServices(WSModuleDescriptorImpl.java:1364)
at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl._containsJAXWSWebServices(WSModuleDescriptorImpl.java:538)
at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.containsJAXWSWebServices(WSModuleDescriptorImpl.java:513)
at com.ibm.ws.webservices.admin.utils.ServiceContainmentHelper.<init>(ServiceContainmentHelper.java:71)
at com.ibm.ws.webservices.admin.utils.CommonUtils.getServiceContianmentHelper(CommonUtils.java:690)
at com.ibm.ws.webservices.admin.utils.CommonUtils.hasWebServices(CommonUtils.java:295)
at com.ibm.ws.webservices.admin.utils.CommonUtils.hasJAXWSWebServices(CommonUtils.java:238)
at com.ibm.ws.webservices.admin.deploy.DeploymentValidation.getWebServiceType(DeploymentValidation.java:309)
at com.ibm.ws.webservices.admin.deploy.DeploymentValidation.validateEarModules(DeploymentValidation.java:381)
at com.ibm.ws.webservices.admin.deploy.DeploymentValidation.validateTargetForPartialUpdate(DeploymentValidation.java:1182)
at com.ibm.ws.webservices.admin.deploy.ServiceIndexServerTask.performTask(ServiceIndexServerTask.java:168)
at com.ibm.ws.management.application.SchedulerImpl.run(SchedulerImpl.java:315)
    at java.lang.Thread.run(Thread.java:790)
Caused by: java.lang.Exception: A WSDL Definition could not be generated for the implementation class: it.bz.prov.as400.personal.logic.AnagraficaImpl
    at com.ibm.ws.websvcs.wsdl.WASWSDLGenerator.generateWsdl(WASWSDLGenerator.java:242)
    ... 19 more

我不使用 maven 或 ant 来构建项目。

经过长时间(呃)研究,我发现当 Web 模块中用于 Web 服务的类的间接依赖存在问题时会出现错误消息,即 EJB 项目中 Web 服务的实现使得使用本身依赖于未提供的另一个 jar 的 jar。 具体来说,当我将 lombok 注释(例如 @Data 或 @Getter)放入 Web 服务实现使用的类中时,就会出现此问题。

让我感到困惑的是,Web 服务和其他一切都运行良好。每次我将项目部署到 WAS 时,我都会得到这个堆栈跟踪。 所以,问题: - 我需要担心这个错误信息吗? - 我该如何摆脱它?我可以将 lombok 所依赖的所有 jar 添加到类路径中,但我不希望这样做(也因为我似乎无法找到 lombok 的依赖项列表)

谢谢,抱歉我的英语不好

【问题讨论】:

    标签: java web-services wsdl jax-ws lombok


    【解决方案1】:

    Lombok 没有任何依赖项。

    您是否使用任何处理源代码的工具?

    披露:我是龙目岛开发人员。

    【讨论】:

    • 抱歉,我不确定您所说的“处理源代码的工具”是什么意思?我使用 IBM 的 Rational Application Developer(基于 Eclipse)编写代码,从那里构建并从那里部署到 websphere(使用 RAD 的集成“服务器”视图)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 2013-01-02
    相关资源
    最近更新 更多