2010-10-18 27 views
5

Bir WSDL dosyam var (web hizmeti .NET tarafından yazılmıştır) ve java web hizmeti istemci proxy sınıflarını ve kodlarını IntelliJ IDEA 7.0.4 aracında oluşturabilirim. web hizmetinin bir sabun isteği üstbilgisi vardır, ancak istek üstbilgisini ayarlamak için otomatik oluşturulan Java proxy sınıflarında ve kodlarında herhangi bir özellik veya yöntem göremiyorum. (ancak C# için proxy sınıflarını oluşturmak için Visual Studio 2008 kullandığımda, bir nesne, web hizmeti proxy sınıfında üstbilgiye göre oluşturulacak şekilde doldurabilmem için basitçe)Java'da SOAP isteği üstbilgisi nasıl gönderilir?

Java'da ne yapmalıyım?

+0

Check: http://stackoverflow.com/questions/3925272/handler-to-add-http-headers-to-http-request-not-invoked-when-using-axis-client-ap/3981045#3981045 – madhurtanwani

cevap

1

Proxy sınıflarını oluşturmak için IntelliJ'un ne kullandığından emin değilim. AXIS belki?

Ben sen CXF, bunu yapmak istiyorsanız web istemcisi tanımlarken zaman, en iyi yolu SoapInterceptor uygulamak ve daha sonra bir giden keseni olarak ayarlamak bir sınıf yaratmak olduğunu biliyorum .

public void handleMessage(SoapMessage message) throws Fault { message.getHeaders().add(QName.valueOf("foo"), "bar"); } 

Ancak sonuçta, o size IDE kullanan kütüphane bilmiyorsanız bu işlemek için doğru şekilde anlamaya yönelik sert olacak.

+0

Intellij, varsa, eksen ve eksen2'yi kullanır. –

1

Tam bir web hizmeti istemcisi için tüm sınıflar, jdk'de bulunan wsimport aracıyla oluşturulabilir.

http://download.oracle.com/javase/6/docs/technotes/tools/share/wsimport.html

Yalnızca wsdl adresi belirtmeniz gerekir.

+0

Sadece bir numara, 'wsimport' kullanarak başlık eklemek için' -XadditionalHeaders' komut satırında bir ek parametre geçirmeniz gerekiyor. Bu bilgiyi [bu soru] 'nun yorumları üzerine aldım (http://stackoverflow.com/questions/7257539/wsimport-doesnt-generate-code-related-to-soap-headers) –

İlgili konular