0

我正在尝试在安装在 *nix 操作系统上的 WAS 8.5 服务器上部署 JAX-WS Web 服务。我收到以下错误:

[3/1/13 15:31:19:687 CET] 000003c0 WSServerMetad E   WSWS7055E: The WEB-INF/wsdl/KeyPushTargetService.wsdl Web Services Description Language (WSDL) file specified by annotations in class com.cryptomathic.ckms.KeyPushTargetServiceSoapImpl cannot be loaded correctly due to the following error: java.lang.RuntimeException: WSWS7035E: The http://www.w3.org/2001/XMLSchema.dtd metadata file could not be found.
[3/1/13 15:31:19:698 CET] 000003c0 WSModuleDescr E   WSWS7011E: The configuration for the CKTC_MQ_WEB.war application module cannot load correctly. 
The following error occurred:  com.ibm.ws.websvcs.exception.DeploymentException: java.lang.RuntimeException: WSWS7035E: The http://www.w3.org/2001/XMLSchema.dtd metadata file could not be found.
    at com.ibm.ws.websvcs.deployment.WSServerMetadataMerger.attachWSDLDefinition(WSServerMetadataMerger.java:1852)
    at com.ibm.ws.websvcs.deployment.WSServerMetadataMerger.associateWSDLDefinitions(WSServerMetadataMerger.java:1688)
    at com.ibm.ws.websvcs.deployment.WSServerMetadataMerger.mergeMetadata(WSServerMetadataMerger.java:746)
    at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.initDBCMap(WSModuleDescriptorImpl.java:2058)
    at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.buildJAXWSServices(WSModuleDescriptorImpl.java:1303)
    at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl._containsJAXWSWebServices(WSModuleDescriptorImpl.java:481)
    at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.containsJAXWSWebServices(WSModuleDescriptorImpl.java:456)
    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.validateOperation_Required(DeploymentValidation.java:204)
    at com.ibm.ws.management.application.task.ValidateAppTask.performTask(ValidateAppTask.java:392)
    at com.ibm.ws.management.application.SchedulerImpl.run(SchedulerImpl.java:315)
    at java.lang.Thread.run(Thread.java:772)
Caused by: java.lang.RuntimeException: WSWS7035E: The http://www.w3.org/2001/XMLSchema.dtd metadata file could not be found.
    at com.ibm.ws.websvcs.wsdl.BaseWSDLLocator.getImportInputSource(BaseWSDLLocator.java:251)
    at com.ibm.wsdl.xml.EntityResolverAdapter.resolveEntity(EntityResolverAdapter.java:40)
    at org.apache.xerces.util.EntityResolverWrapper.resolveEntity(Unknown Source)
    at org.apache.xerces.impl.XMLEntityManager.resolveEntity(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2245)
    at com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(WSDLReaderImpl.java:869)
    at com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(WSDLReaderImpl.java:903)
    at com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(WSDLReaderImpl.java:691)
    at com.ibm.wsdl.xml.WSDLReaderImpl.parseTypes(WSDLReaderImpl.java:647)
    at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(WSDLReaderImpl.java:353)
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2409)
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2373)
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2426)
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2447)
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2481)
    at com.ibm.ws.websvcs.deployment.WSServerMetadataMerger.attachWSDLDefinition(WSServerMetadataMerger.java:1818)

WAS 是否真的试图下载 DTD frow W3C 服务器但未能做到这一点?我无法直接访问服务器机器,所以我无法直接验证它(但我可以问)。我们在 Windows 系统上的 WAS 7.0 和 WAS 8.5 上成功地部署了相同的 JAX-WS Web 服务(并且我们确信 WAS 在部署在 Windows 服务器上时不会尝试从 Internet 下载任何 DTD)。

任何想法?

谢谢,乔瓦尼

4

2 回答 2

0

我不知道具体的答案,但我有几个想法可以贡献。

您是否将您在 Windows 上部署的 EAR/WAR 与您在 *nix 安装上部署的 EAR/WAR 进行了比较?我假设它们是相同的,但我要检查该错误的第一件事是确保 WEB-INF/wsdl/KeyPushTargetService.wsdl 存在于您的部署工件中。

如果 WAS 试图下载 XMLSchema 定义,我会觉得很奇怪。这可能表明服务器存在一些配置问题。如果您想对此进行测试,您可以尝试创建另一个基本的 JAX-WS 服务(如 HelloWorld 示例)来部署并查看是否遇到相同的问题。

作为最后的手段,您还可以尝试将 DTD 放入您的 EAR/WAR 中,看看这是否会使问题消失。我不会使用永久修复,但它可能会让你暂时移动。

让我知道这些是否可行。

于 2013-03-03T16:59:37.107 回答
0

检查您的运行时 jar 以获取 xml 解析器 - 看起来您遇到了类路径问题。

于 2014-06-02T18:29:47.730 回答