|
02.08.2012, 18:26:55
#37902498
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
|
|
|
Участник
Откуда: Uzbekistan
Сообщения: 199
Рейтинг:
0
/ 0
|
|
|
|
Доброе времени суток.
Есть некий веб сервис. Описание (wsdl) такой:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65.
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://pgw.glbpay.com/api/pay.asmx" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://pgw.glbpay.com/api/pay.asmx">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://someurl.com/api/pay.asmx">
<s:element name="Callsvr">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="argXml" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="argTeststatus" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="CallsvrResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="CallsvrResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="CallsvrSoapIn">
<wsdl:part name="parameters" element="tns:Callsvr"/>
</wsdl:message>
<wsdl:message name="CallsvrSoapOut">
<wsdl:part name="parameters" element="tns:CallsvrResponse"/>
</wsdl:message>
<wsdl:portType name="paySoap">
<wsdl:operation name="Callsvr">
<wsdl:input message="tns:CallsvrSoapIn"/>
<wsdl:output message="tns:CallsvrSoapOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="paySoap" type="tns:paySoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="Callsvr">
<soap:operation soapAction="http://someurl.com/api/pay.asmx/Callsvr" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="paySoap12" type="tns:paySoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="Callsvr">
<soap12:operation soapAction="http://someurl.com/api/pay.asmx/Callsvr" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="pay">
<wsdl:port name="paySoap" binding="tns:paySoap">
<soap:address location="http://someurl.net/api/pay.asmx"/>
</wsdl:port>
<wsdl:port name="paySoap12" binding="tns:paySoap12">
<soap12:address location="http://someurl.net/api/pay.asmx"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Клиент:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
package wsc;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
//import javax.xml.rpc.Call;
import org.apache.axis.Constants;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
public class Client_03 {
public Client_03() {
}
public static void main(String[] args) {
try{callWs();}catch(Exception e){e.printStackTrace();}
}
private static void callWs()throws Exception{
String argXml = "some_params";
String endpoint = "http://someurl.net/api/pay.asmx";
URL url = new URL(endpoint);
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(url);
call.setSOAPActionURI("http://someurl.com/Callsvr");
call.setOperationName(new QName(endpoint,"Callsvr"));
call.setPortName(new QName("paySoap12"));
call.addParameter(new QName(endpoint,"argXml"), Constants.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName(endpoint,"argTeststatus"), Constants.XSD_STRING, ParameterMode.IN);
call.setReturnType(Constants.XSD_STRING);
String result = (String)call.invoke(new Object[]{argXml,1});
System.out.println("Result: " + result);
}
}
В логах:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73.
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client
faultSubcode:
faultString: System.Web.Services.Protocols.SoapException: ???????? <Callsvr xmlns='http://someurl.net/api/pay.asmx'>?
? System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
? System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message)
? System.Web.Services.Protocols.SoapServerProtocol.Initialize()
? System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:System.Web.Services.Protocols.SoapException: ???????? <Callsvr xmlns='http://pgw.grapay.net/api/pay.asmx'>?
? System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
? System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message)
? System.Web.Services.Protocols.SoapServerProtocol.Initialize()
? System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1345)
at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:362)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:308)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:213)
at oracle.xml.jaxp.JXSAXParser.parse(JXSAXParser.java:292)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at wsc.Client_03.callWs(Client_03.java:107)
at wsc.Client_03.main(Client_03.java:23)
{http://xml.apache.org/axis/}hostname:ALI
System.Web.Services.Protocols.SoapException: ???????? <Callsvr xmlns='http://someurl.net/api/pay.asmx'>?
? System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
? System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message)
? System.Web.Services.Protocols.SoapServerProtocol.Initialize()
? System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1345)
at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:362)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:308)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:213)
at oracle.xml.jaxp.JXSAXParser.parse(JXSAXParser.java:292)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at wsc.Client_03.callWs(Client_03.java:107)
at wsc.Client_03.main(Client_03.java:23)
Process exited with exit code 0.
Что я делая не так? Помогите пожалуйста.
|
|
|