我將使用IBM的Rational Developer和WebSphere Application Server龍目島和Web服務:WSDL定義無法實現類
我正在開發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構建項目。
經過長時間(ugh)的研究,我發現錯誤信息出現在Web模塊中用於Web服務的類的間接依賴關係出現問題時,即在EJB項目中實現了Web服務使用一個本身依賴於另一個未提供的jar的jar。 具體而言,當我在Web服務實現使用的類中放置lombok註釋(例如@Data或@Getter)時,會出現此問題。
讓我感到困惑的是,Web服務的工作原理與其他所有服務一樣。每次將項目部署到WAS時,我都會有這個堆棧跟蹤。 所以,問題: - 我不得不擔心這個錯誤信息? - 我該如何擺脫它?我可以添加到classpath龍目島dependends所有罐子,但我寧願不要(也因爲我似乎無法找到依賴於龍目島的列表)
謝謝和抱歉,我的英語不好
對不起,我不確定你的意思是「處理源代碼的工具」?我使用IBM的Rational Application Developer(基於Eclipse)編寫代碼,從那裏構建並從那裏部署到websphere(使用RAD的集成「服務器」視圖)。 –