Web services 初始化JAXWS使用者时发生org.xml.sax.SAXParseException

Web services 初始化JAXWS使用者时发生org.xml.sax.SAXParseException,web-services,websphere,jax-ws,Web Services,Websphere,Jax Ws,当调用JAXWS Java使用者存根构造函数时,我得到以下异常。当我尝试通过。SOAPUI一切正常,能够得到正确的响应。它是一个web服务器到多应用服务器(Websphere 7.x群集)的设置。消费者代码看起来不错。提供程序代码很好,因为它在SOAPUI中工作。Web服务器存在一些问题,Web服务器可能会使用HTML而不是XML进行响应。通过Java消费者尝试时,App Server未收到请求,并且没有日志。我们在没有web服务器设置的本地应用服务器上进行了测试,它可以正常工作。不知道问题出在

当调用JAXWS Java使用者存根构造函数时,我得到以下异常。当我尝试通过。SOAPUI一切正常,能够得到正确的响应。它是一个web服务器到多应用服务器(Websphere 7.x群集)的设置。消费者代码看起来不错。提供程序代码很好,因为它在SOAPUI中工作。Web服务器存在一些问题,Web服务器可能会使用HTML而不是XML进行响应。通过Java消费者尝试时,App Server未收到请求,并且没有日志。我们在没有web服务器设置的本地应用服务器上进行了测试,它可以正常工作。不知道问题出在哪里?有人能帮忙吗?我正在使用WebSphere附带的Axis2来托管web服务。WebSphere读取实现类中的注释以部署Web服务。自动生成WSDL。若指定的WSDL位置不起作用,那个么我并没有在实现文件中指定它。我没有提供配置文件(web.xml等)。它不是HTTPS web服务。我能够远程登录到web服务服务器,并通过远程登录获取WSDL

javax.xml.ws.WebServiceException: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: Problem parsing 'http://ip:port/AppName/ServiceName'.: (http://ip:port/AppName/ServiceName%27.:) org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed.
at org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:175)
at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:70)
at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:128)
at org.apache.axis2.jaxws.util.WSDL4JWrapper.loadDefinition(WSDL4JWrapper.java:754)
at org.apache.axis2.jaxws.util.WSDL4JWrapper.getDefinition(WSDL4JWrapper.java:670)
at org.apache.axis2.jaxws.util.WSDL4JWrapper.commonPartsURLConstructor(WSDL4JWrapper.java:224)
at org.apache.axis2.jaxws.util.WSDL4JWrapper.<init>(WSDL4JWrapper.java:156)
at org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl.setupWsdlDefinition(ServiceDescriptionImpl.java:1191)
at org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl.<init>(ServiceDescriptionImpl.java:245)
at org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl.<init>(ServiceDescriptionImpl.java:168)
at org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:142)
at org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:79)
at org.apache.axis2.jaxws.description.DescriptionFactory.createServiceDescription(DescriptionFactory.java:76)
at org.apache.axis2.jaxws.spi.ServiceDelegate.<init>(ServiceDelegate.java:212)
at org.apache.axis2.jaxws.spi.Provider.createServiceDelegate(Provider.java:71)
at javax.xml.ws.Service.<init>(Service.java:67)
at somepackage.servicename.<init>(servicename.java:42)...more are here hidden to maintain confidential
Caused by: 
javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: Problem parsing 'http://ip:port/AppName/ServiceName'.: (http://ip:port/AppName/ServiceName%27.:) org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed.
at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2315)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2390)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2356)
at org.apache.axis2.jaxws.util.WSDL4JWrapper$13.run(WSDL4JWrapper.java:745)
at org.apache.axis2.java.security.AccessController.doPrivileged(AccessController.java:132)
at org.apache.axis2.jaxws.util.WSDL4JWrapper.loadDefinition(WSDL4JWrapper.java:742)
... 70 more
Caused by: 
org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed.
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:2305)
... 75 more  </pre>
javax.xml.ws.WebServiceException:javax.wsdl.wsdleException:wsdleException:faultCode=PARSER\u错误:解析问题'http://ip:port/AppName/ServiceName'.: (http://ip:port/AppName/ServiceName%27.:)org.xml.sax.SAXParseException:根元素后面的文档中的标记必须格式正确。
位于org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:175)
位于org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:70)
位于org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:128)
位于org.apache.axis2.jaxws.util.WSDL4JWrapper.loadDefinition(WSDL4JWrapper.java:754)
位于org.apache.axis2.jaxws.util.WSDL4JWrapper.getDefinition(WSDL4JWrapper.java:670)
位于org.apache.axis2.jaxws.util.WSDL4JWrapper.commonPartsURLConstructor(WSDL4JWrapper.java:224)
位于org.apache.axis2.jaxws.util.WSDL4JWrapper.(WSDL4JWrapper.java:156)
位于org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl.setupWsdlDefinition(ServiceDescriptionImpl.java:1191)
位于org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl.(ServiceDescriptionImpl.java:245)
位于org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl.(ServiceDescriptionImpl.java:168)
位于org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:142)
位于org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:79)
位于org.apache.axis2.jaxws.description.DescriptionFactory.createServiceDescription(DescriptionFactory.java:76)
位于org.apache.axis2.jaxws.spi.ServiceDelegate(ServiceDelegate.java:212)
位于org.apache.axis2.jaxws.spi.Provider.createServiceDelegate(Provider.java:71)
位于javax.xml.ws.Service。(Service.java:67)
在somepackage.servicename.(servicename.java:42)…这里隐藏了更多信息以维护机密
原因:
javax.wsdl.WSDLException:WSDLException:faultCode=PARSER\u错误:解析问题'http://ip:port/AppName/ServiceName'.: (http://ip:port/AppName/ServiceName%27.:)org.xml.sax.SAXParseException:根元素后面的文档中的标记必须格式正确。
位于com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2315)
位于com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2390)
位于com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2356)
位于org.apache.axis2.jaxws.util.WSDL4JWrapper$13.run(WSDL4JWrapper.java:745)
位于org.apache.axis2.java.security.AccessController.doPrivileged(AccessController.java:132)
位于org.apache.axis2.jaxws.util.WSDL4JWrapper.loadDefinition(WSDL4JWrapper.java:742)
... 70多
原因:
org.xml.sax.SAXParseException:根元素后面的文档中的标记必须格式正确。
位于org.apache.xerces.parsers.DOMParser.parse(未知源)
位于org.apache.xerces.jaxp.DocumentBuilderImpl.parse(未知源)
位于com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2305)
... 75多

我不确定您的wsdl检索出了什么问题,但是如果您可以从远程服务提取wsdl(以及它导入的任何文件)并直接将其打包到客户端,那么就可以避免每次调用都从远程服务检索wsdl,这除了在您的情况下不起作用之外,也会降低性能。您的客户端wsdllocation将更改为文件://(某物)。如果您使用的是诸如RAD或WDT之类的开发人员工具,那么它可以选择自动检索wsdl并将其与客户机打包

SOAP服务是在WebSphere下运行,还是在客户机下运行,或者两者都在运行?SOAP服务在WebSphere提供者端运行。使用者和提供者在单独的WebSphere中运行。消费者WebSphere是8.x,提供者是7.x。我后来检查了它是应用程序服务器到应用程序服务器的交互。不是应用服务器到web服务器。这就是UAT环境。我测试的从桌面到AppServer7.x的方法运行良好。正如Bruce所说,将WSDL和xsd放在客户端是可行的,但不确定是否是好方法。若我们从服务器动态地获取WSDL和xsd,那个就更好了。有关更多详细信息,请参见他的评论在消费者端没有运行soap服务您使用的WSDL URL是什么?它是否重定向到其他内容?可以粘贴引用它的客户端代理代码吗?很高兴你有一个解决办法,但是,像你一样,我更喜欢减少这些事情的手动活动,我想了解为什么原始方法不起作用。它起作用了,但它是一个好方法吗?我使用jax-ws-catalog.xml并将wsdl和xsd放在MANIFEST-INF目录中。使用XSD的WSDL表示XSD正在导入另一个XSD。如果稍后远程WSDL中发生了重大更改,客户端可能会收到信息较少的错误消息。但是,即使wsdl是远程的,大多数客户端仍然会被这种更改破坏。