Я использую Axis2 для написания клиента для веб-службы, размещенной на удаленном сервере:
public static void getUserProfile(
final VSIUserServiceDetailsWebService_v5R0Stub stub) {
try {
final GetUserProfileByVOLNameDocument reqDoc =
GetUserProfileByVOLNameDocument.Factory.newInstance();
final GetUserProfileByVOLNameDocument.GetUserProfileByVOLName req =
reqDoc.addNewGetUserProfileByVOLName();
req.setString("resc3ofw");
LOG.debug("Invoking Web service...");
final GetUserProfileByVOLNameResponseDocument res =
stub.getUserProfileByVOLName(reqDoc);
LOG.debug("Output: "
+ res.getGetUserProfileByVOLNameResponse().getResult()
.getUserProfiles().getId());
} catch (final Exception e) {
LOG.error("Error! : ", e);
}
}
и я получаю исключение "java.lang.IllegalArgumentException: указано значение Null OutputStream" Ниже приведена полная трассировка журнала:
17: 09: 09.752 DEBUG [TestClient.getPrice (): 72] - вызов веб-службы ...
17: 09: 09.799 DEBUG [OutInAxisOperationClient.executeImpl (): 162] - Запись: OutInAxisOperationClient :: execute, true
17: 09: 09.799 DEBUG [Phase.invoke (): 269] - [MessageContext: logID = urn: uuid: D5D2E12E5AB334EF381285587549833] Проверка предварительного условия для фазы «OperationOutPhase»
17: 09: 09.799 DEBUG [Phase.invoke (): 282] - [MessageContext: logID = urn: uuid: D5D2E12E5AB334EF381285587549833] Фаза вызова «OperationOutPhase»
17: 09: 09.799 DEBUG [Phase.invoke (): 303] - [MessageContext: logID = urn: uuid: D5D2E12E5AB334EF381285587549833] Проверка постусловий для фазы «OperationOutPhase»
17: 09: 09.799 DEBUG [Phase.invoke (): 269] - [MessageContext: logID = urn: uuid: D5D2E12E5AB334EF381285587549833] Проверка предварительного условия для фазы "RMPhase"
17: 09: 09.799 DEBUG [Phase.invoke (): 282] - [MessageContext: logID = urn: uuid: D5D2E12E5AB334EF381285587549833] Фаза вызова «RMPhase»
17: 09: 09.799 DEBUG [Phase.invoke (): 303] - [MessageContext: logID = urn: uuid: D5D2E12E5AB334EF381285587549833] Проверка постусловий для фазы «RMPhase»
17: 09: 09.799 DEBUG [Phase.invoke (): 269] - [MessageContext: logID = urn: uuid: D5D2E12E5AB334EF381285587549833] Проверка предварительного условия для фазы «PolicyDetermination»
17: 09: 09.799 DEBUG [Phase.invoke (): 282] - [MessageContext: logID = urn: uuid: D5D2E12E5AB334EF381285587549833] Фаза вызова «PolicyDetermination»
17: 09: 09.799 DEBUG [Phase.invoke (): 303] - [MessageContext: logID = urn: uuid: D5D2E12E5AB334EF381285587549833] Проверка постусловий для фазы «PolicyDetermination»
17: 09: 09.799 DEBUG [Phase.invoke (): 269] - [MessageContext: logID = urn: uuid: D5D2E12E5AB334EF381285587549833] Проверка предварительного условия для фазы "MessageOut"
17: 09: 09.799 DEBUG [Phase.invoke (): 282] - [MessageContext: logID = urn: uuid: D5D2E12E5AB334EF381285587549833] Фаза вызова «MessageOut»
17: 09: 09.799 DEBUG [Phase.invoke (): 303] - [MessageContext: logID = urn: uuid: D5D2E12E5AB334EF381285587549833] Проверка постусловий для фазы «MessageOut»
17: 09: 09.799 DEBUG [Phase.invoke (): 269] - [MessageContext: logID = urn: uuid: D5D2E12E5AB334EF381285587549833] Проверка предварительного условия для фазы «Безопасность»
17: 09: 09.799 DEBUG [Phase.invoke (): 282] - [MessageContext: logID = urn: uuid: D5D2E12E5AB334EF381285587549833] Фаза вызова «Безопасность»
17: 09: 09.799 DEBUG [Phase.invoke (): 303] - [MessageContext: logID = urn: uuid: D5D2E12E5AB334EF381285587549833] Проверка постусловий для фазы «Безопасность»
17: 09: 09.846 DEBUG [SOAPMessageFormatter.getContentType (): 122] - contentType из OMOutputFormat = text / xml
17: 09: 09.846 DEBUG [SOAPMessageFormatter.getContentType (): 137] - возвращенный contentType = text / xml; кодировка = UTF-8
17: 09: 09.861 DEBUG [AbstractHTTPSender.getHostConfiguration (): 272] - ProxyConfiguration
17: 09: 09.892 ОТЛАДКА [Wire.wire (): 84] - >> «ПОДКЛЮЧИТЬ wsgateway2.XXX.com:443 HTTP / 1.1»
17: 09: 09.892 ОТЛАДКА [Wire.wire (): 70] - >> «Пользователь-агент: Jakarta Commons-HttpClient / 3.1 [\ r] [\ n]»
17: 09: 09.892 ОТЛАДКА [Wire.wire (): 70] - >> "Хост: wsgateway2.XXX.com [\ r] [\ n]"
17: 09: 09.892 ОТЛАДКА [Wire.wire (): 70] - >> «Proxy-Connection: Keep-Alive [\ r] [\ n]»
17: 09: 09.892 ОТЛАДКА [Wire.wire (): 70] - >> "[\ r] [\ n]"
17: 09: 09.892 DEBUG [Wire.wire (): 70] - << "HTTP / 1.1 200 Соединение установлено. [\ R] [\ n]"
17: 09: 09.892 DEBUG [Wire.wire (): 70] - << "HTTP / 1.1 200 Соединение установлено. [\ R] [\ n]"
17: 09: 09.892 ОТЛАДКА [Wire.wire (): 70] - << "X-Junk: xxxxxxxxxxxxxx [\ r] [\ n]"
17: 09: 09.892 ОТЛАДКА [Wire.wire (): 70] - << "[\ r] [\ n]"
17: 09: 10.174 ОТЛАДКА [Wire.wire (): 70] - >> «POST / VSIUserServiceDetailsWebService_v5r0 HTTP / 1.1 [\ r] [\ n]»
17: 09: 10.174 ОТЛАДКА [Wire.wire (): 70] - >> «Тип содержимого: text / xml; charset = UTF-8 [\ r] [\ n]»
17: 09: 10.174 ОТЛАДКА [Wire.wire (): 70] - >> "SOAPAction:" "[\ r] [\ n]"17: 09: 10.174 ОТЛАДКА [Wire.wire (): 70] - >> «Агент пользователя: Axis2 [\ r] [\ n]»
17: 09: 10.174 ОТЛАДКА [Wire.wire (): 70] - >> «Хост: wsgateway2.XXX.com [\ r] [\ n]»
17: 09: 10.174 ОТЛАДКА [Wire.wire (): 70] - >> «Кодирование передачи: chunked [\ r] [\ n]»
17: 09: 10.174 ОТЛАДКА [Wire.wire (): 70] - >> "[\ r] [\ n]"
17: 09: 10.174 DEBUG [SOAPMessageFormatter.writeTo (): 49] - начать writeTo ()
17: 09: 10.174 ОТЛАДКА [SOAPMessageFormatter.writeTo (): 50] - preserve = false
17: 09: 10.174 ОТЛАДКА [SOAPMessageFormatter.writeTo (): 51] - isOptimized = false
17: 09: 10.174 ОТЛАДКА [SOAPMessageFormatter.writeTo (): 52] - isDoingSWA = false
17: 09: 10.189 DEBUG [StAXUtils.createXMLStreamWriter (): 251] - XMLStreamWriter является com.sun.xml.internal.stream.writers.XMLStreamWriterImpl
17: 09: 10.189 DEBUG [OMSourcedElementImpl.internalSerializeAndConsume (): 594] - сериализовать {http://netservices.XXX.net/vasipvsi/vsi_servicedetails_webservice}getUserProfileByVOLName в XMLStreamWriter
17: 09: 10.189 DEBUG [SOAPMessageFormatter.writeTo (): 75] - конец writeTo ()
17: 09: 10.564 ОШИБКА [TestClient.getPrice (): 80] - Ошибка! :
java.lang.IllegalArgumentException: указано пустое значение OutputStream
в org.apache.xmlbeans.impl.store.Cursor._save (Cursor.java:577)
в org.apache.xmlbeans.impl.store.Cursor.save (Cursor.java:2544)
в org.apache.xmlbeans.impl.values.XmlObjectBase.save (XmlObjectBase.java:212)
at net.XXX.web.wsclient.VSIUserServiceDetailsWebService_v5R0Stub $ 19.serialize (VSIUserServiceDetailsWebService_v5R0Stub.java:2735)
в org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerializeAndConsume (OMSourcedElementImpl.java:599)
в org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize (OMElementImpl.java:785)
в org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume (OMElementImpl.java:814)
в org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.serializeInternally (SOAPEnvelopeImpl.java:237)
в org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize (SOAPEnvelopeImpl.java:225)
в org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume (OMElementImpl.java:814)
в org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume (OMNodeImpl.java:421)
в org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo (SOAPMessageFormatter.java:68)
в org.apache.axis2.transport.http.AxisRequestEntity.writeRequest (AxisRequestEntity.java:84)
в org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody (EntityEnclosingMethod.java:499)
в org.apache.commons.httpclient.HttpMethodBase.writeRequest (HttpMethodBase.java:2114)
в org.apache.commons.httpclient.HttpMethodBase.execute (HttpMethodBase.java:1096)
в org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry (HttpMethodDirector.java:398)
в org.apache.commons.httpclient.HttpMethodDirector.executeMethod (HttpMethodDirector.java:171)
на org.apache.commons.httpclient.HttpClient.executeMethod (HttpClient.java:397)
на org.apache.commons.httpclient.HttpClient.executeMethod (HttpClient.java:346)
в org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod (AbstractHTTPSender.java:520)
в org.apache.axis2.transport.http.HTTPSender.sendViaPost (HTTPSender.java:191)
в org.apache.axis2.transport.http.HTTPSender.send (HTTPSender.java:77)
в org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons (CommonsHTTPTransportSender.java:327)
в org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke (CommonsHTTPTransportSender.java:206)
в org.apache.axis2.engine.AxisEngine.send (AxisEngine.java:396)
в org.apache.axis2.description.OutInAxisOperationClient.send (OutInAxisOperation.java:374)
в org.apache.axis2.description.OutInAxisOperationClient.executeImpl (OutInAxisOperation.java:211)
в org.apache.axis2.client.OperationClient.execute (OperationClient.java:163)
at net.XXX.web.wsclient.VSIUserServiceDetailsWebService_v5R0Stub.getUserProfileByVOLName (VSIUserServiceDetailsWebService_v5R0Stub.java:1362)в net.XXX.web.wsclient.TestClient.getPrice (TestClient.java:74) в net.XXX.web.wsclient.TestClient.main (TestClient.java:41)