Я новичок в SOAP и POSTMAN и мне интересно, что я делаю неправильно со следующим. У меня есть пример java веб-сервиса с использованием jax-ws:
@WebService(endpointInterface = "Soap1.SOAPInterface")
public class SOAPService implements SOAPInterface
{
public String message(String name)
{
return "Hello " + name;
}
}
Я опубликовал этот веб-сервис с использованием конечной точки:
public class Publisher
{
public static void main(String[]args)
{
Endpoint.publish("http://localhost:9006/Service", new SOAPService());
}
}
Теперь, когда я запускаю это на клиенте, он работает нормально
public static void main(String[] args) throws Exception
{
URL url = new URL("http://localhost:9006/Service?wsdl");
QName qname = new QName("http://Soap1/","SOAPServiceService");
Service s = Service.create(url,qname);
SOAPInterface i = s.getPort(SOAPInterface.class);
System.out.println(i.message("Bob"));
}
Однако при попытке использовать POSTMAN для анализа SOAP запроса / ответов. Введя для запроса xml:
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Body>
<MyMessage xmlns="http://Soap1/">
<name>Bob</name>
</MyMessage>
</Body>
</Envelope>
Я получаю ответ Hello null
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:MyMessageResponse xmlns:ns2="http://Soap1/">
<returnedMessage>Hello null</returnedMessage>
</ns2:MyMessageResponse>
</S:Body>
</S:Envelope>
Мне интересно, почему это происходит, потому что при использовании клиента параметры проходят нормально, но при использовании POSTMAN они, кажется, не передаются.
Снимок экрана почтальон: