У меня была такая же проблема, как и у вас.
После нескольких часов копания кажется, что я почти решил эту проблему.
Это исключение происходит из-за отсутствия установленного целевого адреса конечной точки
Вот мой код
Call call = service.createCall();
call.setPortTypeName(portQName);
call.setOperationName(new QName(namespace, operation));
call.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY, "http://schemas.xmlsoap.org/soap/encoding/");
call.setProperty(Call.OPERATION_STYLE_PROPERTY, "rpc");
call.addParameter("in0", org.apache.axis.Constants.XSD_STRING ,ParameterMode.IN);
call.addParameter("in1", org.apache.axis.Constants.XSD_STRING ,ParameterMode.IN);
call.setReturnType(serviceQName);
String targetEndpoint = "http://113.160.19.218:8312/axis/services/WeatherForecastTest1";
call.setTargetEndpointAddress(targetEndpoint);
String result = (String) call.invoke(params);
out.println(result);
Значение аргумента targetEndpoint является значением атрибута location элемента address внутри элемента порта. Вот пример
<service name="WeatherForecastTest1Service">
<port binding="impl:WeatherForecastTest1SoapBinding" name="WeatherForecastTest1">
<wsdlsoap:address location="http://113.160.19.218:8312/axis/services/WeatherForecastTest1"/>
</port>
</service>
Вы можете получить это значение, получив документ wsdl с помощью некоторого wsdlParser (я использую WSDL4J от Axis) (обратите внимание, что в приведенном выше примере кода я жестко закодировал значение targetEndpoint)
Более того, я установил OPERATION_STYLE_PROPERTY
в стиле rpc и ENCODINGSTYLE_URI_PROPERTY
в http://schemas.xmlsoap.org/soap/encoding/ (это значение по умолчанию)
Здесь - документ, который я нашел для решения этой проблемы
Надеюсь, это поможет вам! Извините за мой плохой английский.