JAX-WS

2016-04-07 16 views
0

için "basit önyüz" kullanan bir CXF istemcisini taşıma simple frontend stilini kullanan Apache CXF ile yazılmış bir web hizmeti istemcim var. Konumu ve hizmeti tarafından uygulanan arabirim göz önüne alındığında, uzak bir web hizmetinde bir yöntemi dinamik olarak çağırabilir.JAX-WS

public static void callWsMethod(Class<?> serviceInterface, String address, String methodName,...) { 
    JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); 
    factory.setServiceClass(serviceInterface); 
    factory.setAddress(address); 
    Object instance = factory.create(); 
    ... /*invoke method "methodName" on instance */ 

Bu kodu salt JAX-WS uygulamasına geçirmek istiyorum.

bir 'basit' durumunda

, neredeyse özdeş şeyler Basit önünde gerçekleşir: Ben yukarıda anılan CXF doktor diyor çünkü bu mümkün olduğunu sanıyorum

public static void callWsMethod(Class<?> serviceInterface, String address, String methodName,...) { 
    URL wsdlLocation = new URL(address + "?wsdl"); 
    QName serviceName = new QName(.... , ....); //??? what goes here 
    Service service = Service.create(wsdlLocation, serviceName); 
    Object instance = service.getPort(serviceInterface); 
    ... /*invoke method "methodName" on instance */ 

: Kodum gibi görünmelidir JAX-WS'de olduğu gibi sona.

QName(java.lang.String namespaceURI, java.lang.String localPart) 

nasıl CXF ws çağırmak için doğru namespaceURI ve localPart anlamaya kapsamaz:

Benim ilk sorun QName yapıcısı nedir?

+0

Bunu kontrol ettiniz mi? - http://stackoverflow.com/questions/13583918/how-to-access-web-service-using-an-ordinary-java-class – Sampada

cevap

0

WSDL'niz var mı? Bir WSDL'niz varsa Neden wsimport kullanarak SEI sınıflarını üretmiyorsunuz? Oluşturulanların otomatik olarak doğru QName içerdiğini göreceksiniz.

İlgili konular