【发布时间】:2016-07-13 11:06:11
【问题描述】:
在 IIS 中部署了一个 AXIS2 Web 服务。使用 wsdl 我生成了 JAX-WS 客户端。如果我单独使用,即与 Oracle JDK 一起使用,它可以正常工作。
我必须从部署在 websphere 7 中的应用程序调用 web 服务。因此,我将 jax-ws 生成的客户端(作为 jar)包含在我的应用程序中。当应用程序调用 web 服务时,它会因 java.io.UnsupportedEncodingException: text/xml 异常而失败。 Websphere 7 为 jax-ws 使用了与axis2 相关的jar 文件。
异常详情:
原因:javax.xml.stream.XMLStreamException: java.io.UnsupportedEncodingException: text/xml
at com.ibm.xml.xlxp2.api.stax.msg.StAXMessageProvider.throwXMLStreamException(StAXMessageProvider.java:67)
at com.ibm.xml.xlxp2.api.stax.XMLStreamReaderImpl.setDocumentEntity(XMLStreamReaderImpl.java:401)
at com.ibm.xml.xlxp2.api.stax.XMLInputFactoryImpl.setDocumentEntity(XMLInputFactoryImpl.java:1440)
at com.ibm.xml.xlxp2.api.stax.XMLInputFactoryImpl.createXMLStreamReader(XMLInputFactoryImpl.java:1455)
at com.ibm.xml.xlxp2.api.stax.XMLInputFactoryImpl.createXMLStreamReaderInternal(XMLInputFactoryImpl.java:1555)
at com.ibm.xml.xlxp2.api.stax.XMLInputFactoryImpl.createXMLStreamReader(XMLInputFactoryImpl.java:1626)
at org.apache.axiom.om.util.StAXUtils$14.run(StAXUtils.java:618)
at java.security.AccessController.doPrivileged(AccessController.java:251)
at org.apache.axiom.om.util.StAXUtils.createSecureXMLStreamReader(StAXUtils.java:614)
at org.apache.axis2.builder.SOAPBuilder.processDocument(SOAPBuilder.java:58)
at org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:191)
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:139)
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:102)
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:66)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:353)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
at org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.execute(AxisInvocationController.java:581)
... 41 more
原因:java.io.UnsupportedEncodingException: text/xml
at sun.nio.cs.StreamDecoder.forInputStreamReader(StreamDecoder.java:115)
at java.io.InputStreamReader.<init>(InputStreamReader.java:93)
at com.ibm.xml.xlxp2.api.util.encoding.ByteStreamDataSource.convertToCharacterStream(ByteStreamDataSource.java:278)
at com.ibm.xml.xlxp2.api.util.encoding.PlatformEncodingSupport.loadFromByteStream(PlatformEncodingSupport.java:48)
at com.ibm.xml.xlxp2.api.util.SimpleParsedEntityFactory.detectEncodingSetSource(SimpleParsedEntityFactory.java:503)
at com.ibm.xml.xlxp2.api.util.SimpleParsedEntityFactory.setByteStreamSource(SimpleParsedEntityFactory.java:281)
at com.ibm.xml.xlxp2.api.sax.impl.SAX2ParsedEntityFactory.readFromInputSource(SAX2ParsedEntityFactory.java:122)
at com.ibm.xml.xlxp2.api.sax.impl.SAX2ParsedEntityFactory.createParsedEntity(SAX2ParsedEntityFactory.java:76)
at com.ibm.xml.xlxp2.api.stax.XMLStreamReaderImpl.setDocumentEntity(XMLStreamReaderImpl.java:394)
... 58 more
编辑:更多信息.. web 服务正在返回响应。似乎 websphere 无法处理响应,即失败并出现问题中指定的异常。
请帮忙。
【问题讨论】:
-
您是否部署了一个轴存档文件作为轴战争/jar 的一部分?
-
@Sampada - 不,我在 websphere 中部署的应用程序只有 jax-ws 客户端类文件(生成)和调用 web 服务的类。
-
如果我在 Jboss 中部署相同的应用程序,它工作正常。因此,问题仅在于它部署在 Websphere 中时。
-
请尝试将 stax2-api.jar 放在 websphere 的类路径中
-
这对你有用吗?
标签: web-services websphere jax-ws