【问题标题】:Errors while deploying a JAX-WS Web Service on WebSphere AS 8.5在 WebSphere AS 8.5 上部署 JAX-WS Web 服务时出错
【发布时间】:2013-03-01 15:19:08
【问题描述】:

我正在尝试在安装在 *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)。

有什么想法吗?

谢谢, 乔瓦尼

【问题讨论】:

标签: xml web-services websphere jax-ws


【解决方案1】:

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

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

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

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

让我知道这些是否可行。

【讨论】:

  • 您好,尼克,感谢您的回答。我们确信这两个 EAR/WAR 是相同的。我们还尝试将 DTD 放入 WAR 中与 WSDL 文件(WEB-INF/wsdl/)相同的目录中,但它不起作用。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2013-03-19
    • 1970-01-01
    • 2010-12-16
    • 2013-08-01
    • 1970-01-01
    • 2012-11-18
    • 2017-10-24
    • 1970-01-01
    相关资源
    最近更新 更多