SOAPACTION_URI_PROPERTY 在 Call webservice with axis
SOAPACTION_URI_PROPERTY in Call webservice with axis
我想用 axis.I 调用 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());
}
在这一行
call.setProperty( Call.SOAPACTION_USE_PROPERTY, new Boolean( true ) );
call.setProperty( Call.SOAPACTION_URI_PROPERTY, "http://tempuri.org/CelsiusToFahrenheit");
您是在告诉您要指定肥皂操作并且肥皂操作是摄氏度到华氏度。
SOAP 操作不是强制性的,可用于告诉 Web 服务您要执行哪个方法。
编辑:
因此要分配的值取决于您 wsdl 中的规范。您应该找到一些名为 "operation name='something'" 的标签,以查看为 WS 定义了哪些操作。
尝试替换
call.setOperationName(new QName("http://tempuri.org/CelsiusToFahrenheit","CelsiusToFahrenheit"));
与
call.setOperationName(new QName("http://tempuri.org","CelsiusToFahrenheit"));
我想用 axis.I 调用 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());
}
在这一行
call.setProperty( Call.SOAPACTION_USE_PROPERTY, new Boolean( true ) );
call.setProperty( Call.SOAPACTION_URI_PROPERTY, "http://tempuri.org/CelsiusToFahrenheit");
您是在告诉您要指定肥皂操作并且肥皂操作是摄氏度到华氏度。
SOAP 操作不是强制性的,可用于告诉 Web 服务您要执行哪个方法。 编辑:
因此要分配的值取决于您 wsdl 中的规范。您应该找到一些名为 "operation name='something'" 的标签,以查看为 WS 定义了哪些操作。
尝试替换
call.setOperationName(new QName("http://tempuri.org/CelsiusToFahrenheit","CelsiusToFahrenheit"));
与
call.setOperationName(new QName("http://tempuri.org","CelsiusToFahrenheit"));