2010-10-18 27 views
5

Tôi có tệp WSDL (dịch vụ web đã được viết bởi .NET) và tôi có thể tạo các lớp và mã proxy máy khách web dịch vụ java trong IntelliJ IDEA 7.0.4 bằng công cụ của nó. dịch vụ web có tiêu đề yêu cầu xà phòng, nhưng tôi không thể thấy bất kỳ thuộc tính hoặc phương thức nào trong các lớp và mã proxy Java được tạo tự động để đặt tiêu đề yêu cầu. (nhưng khi tôi sử dụng Visual Studio 2008 để tạo các lớp proxy cho C#, một đối tượng được tạo trong lớp proxy dịch vụ web làm tiêu đề để tôi có thể điền đơn giản)Làm thế nào để gửi tiêu đề yêu cầu SOAP trong Java?

tôi nên làm gì trong Java?

+0

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

Trả lời

1

Tôi không chắc IntelliJ sử dụng để tạo các lớp proxy. AXIS có thể?

tôi làm biết rằng nếu bạn muốn làm điều này với CXF, khi bạn đang xác định khách hàng của bạn, cách tốt nhất là để tạo ra một lớp mà thực hiện SoapInterceptor và sau đó đặt nó như một Interceptor đi.

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

Cuối cùng, bạn sẽ khó tìm ra cách đúng để xử lý nếu bạn không biết thư viện mà IDE đang sử dụng.

+0

Intellij sử dụng trục và trục2 nếu bạn có sẵn. –

1

Tất cả các lớp cho một khách hàng dịch vụ web hoàn chỉnh có thể được tạo bằng công cụ wsimport có trong jdk.

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

Bạn chỉ cần chỉ định địa chỉ wsdl.

+0

Chỉ cần một mẹo, để thêm tiêu đề bằng cách sử dụng 'wsimport', bạn phải chuyển một tham số phụ vào dòng lệnh' -XadditionalHeaders'. Tôi nhận được thông tin này về các ý kiến ​​của [câu hỏi này] (http://stackoverflow.com/questions/7257539/wsimport-doesnt-generate-code-related-to-soap-headers) –

Các vấn đề liên quan