19 Haziran 2018 Salı

JAX-WS @SOAPBinding Anotasyonu

Örnek
Şöyle yaparız
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
Örnek
Şöyle yaparız.
@WebService(name = "DocumentManagementForUnderwritingService",
  targetNamespace = "myNameSpace")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
@XmlSeeAlso({
   //some other classes
})
public interface DocumentManagementForUnderwritingService {
    ...
}
Örnek
Sunucu tarafında şöyle yaparız
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;

@WebService
@SOAPBinding(style=SOAPBinding.Style.RPC)
public interface HelloWorld {
  @WebMethod
  String getHelloWorldAsString(String name);
}

//Bunun paket ismi şöyle olsun
//com.foo.bar.rpc.services.impl
@WebService(endpointInterface="com.foo.bar.services.HelloWorld")
public class HelloWorldImpl implements HelloWorld {
  @Override
  public String getHelloWorldAsString(String name) {
    return "Hello " + name;
  }
}
- İstemci tarafında HelloWorld.java dosyasına ihtiyaç var. Dolayısıyla bu dosyaları ortak bir module içinde toplamak gerekiyor. 

- İstemci tarafına başlamadan önce WSDL dosyasına bakmak gerekir. Şöyle yaparız. Bo dosyanında çıktısındaki bazı string'ler istemci kodunda kullanılıyor.
http://localhost:8888/rpc/helloWorld?wsdl
İstemci tarafında şöyle yaparı
import javax.xml.namespace.QName;
import javax.xml.ws.Service;

public static int main(String[] args) throws Exception {
  URL serviceURL = new URL ("http://localhost:8888/rpc/helloWorld?wsdl");
  QName serviceQName = new QName("http://impl.services.rpc.bar.foo.com","HelloWorldImpl");
  Service service = Service.create(serviceURL,serviceQName);

  QName helloWorldQName = new QName("http://impl.services.rpc.bar.foo.com",
"HelloWorldImplPort");
  HelloWorld hello = service.getPort(helloWorldQName,HelloWorld.class);

 hello.getHelloWorldAsString("...");
}




Hiç yorum yok:

Yorum Gönder