使用轴

时间:2016-05-25 07:02:02

标签: java web-services call axis

我想用axis调用web服务。我想使用这段代码。有人可以告诉我Call.SOAPACTION_URI_PROPERTY的值是什么?

代码:

         try {

        String endpoint =  "http://www.w3schools.com/webservices/tempconvert.asmx";

        Service  service = new Service();
        Call call= (Call) service.createCall();

        call.setProperty( Call.SOAPACTION_USE_PROPERTY, new Boolean( true ) );
        call.setProperty( Call.SOAPACTION_URI_PROPERTY, "http://tempuri.org/CelsiusToFahrenheit");

        call.setTargetEndpointAddress( new java.net.URL(endpoint) );
        call.setOperationName(new QName("http://tempuri.org/CelsiusToFahrenheit","CelsiusToFahrenheit"));

        String ret = (String) call.invoke( new Object[] {"20"} );
        System.out.println("Sent '20', got '" + ret + "'");

 } catch (Exception e) {
        System.err.println(e.toString());
}

1 个答案:

答案 0 :(得分:1)

在这一行

call.setProperty( Call.SOAPACTION_USE_PROPERTY, new Boolean( true ) );
call.setProperty( Call.SOAPACTION_URI_PROPERTY, "http://tempuri.org/CelsiusToFahrenheit");

您告诉您要指定soap操作,并且soap操作是CelsiusToFahrenheit。

SOAP操作不是强制性的,可用于告诉Web服务您要执行哪种方法。 编辑:

所以要分配的值取决于你wsdl中的规范。您应该找到一些名为&#34的标签;操作名称='某些'"查看为WS定义的操作。

尝试替换

call.setOperationName(new QName("http://tempuri.org/CelsiusToFahrenheit","CelsiusToFahrenheit"));

call.setOperationName(new QName("http://tempuri.org","CelsiusToFahrenheit"));