Có hai lựa chọn để đạt được điều này, cả hai hoạt động như một sự quyến rũ. Và cả hai tùy chọn có thể được tự động từ ant \ gradle bạn đặt tên cho nó.
1.To sử dụng -clientjar và sau đó để đóng gói lại các nguồn
2.Manually chèn wsdl vào jar và tùy chỉnh URL wsdLlocation
Giả sử bạn có C: \ WSDL \ SO \ Stas.wsdl (Tôi đã chạy trên windows)
CD C:\WSDL\SO\
tùy chọn đầu tiên
C:\WSDL\SO>wsimport -clientjar StasWebServiceClient.jar stas.wsdl
Điều này tạo ra file jar StasWebServiceClient.jar, nhưng khi nhập nó làm lu mờ, các nguồn không thể nhập cảng, vì vấn đề chủ đề (gói mặc định).
=> Giải nén file jar vào thư mục hiện tại, bạn có thể sử dụng 7zip, hoặc bất kỳ công cụ zip tuyệt vời khác, hoặc bạn có thể chạy
C:\WSDL\SO>jar xf StasWebServiceClient.jar
để giải nén jar.
thư mục hệ thống cấp bậc sẽ giống như
C:\WSDL\SO\META-INF
C:\WSDL\SO\stas.wsdl(original wsdl)
C:\WSDL\SO\StasWebServiceClient.jar(generated jar file)
C:\WSDL\SO\META-INF\wsdl(created by -clientjar)
C:\WSDL\SO\META-INF\wsdl\stas.wsdl(copied by -clientjar)
C:\WSDL\SO\com\...
/* all generated classes\sources */
C:\WSDL\SO\com\...
=> Do
C:\WSDL\SO>jar -cvf StasWebServiceClientCorrect.jar com META-INF
này sẽ tạo ra một lọ, StasWebServiceClientCorrect.jar, mà bây giờ có bao bì đúng.
tùy chọn thứ hai
=> Run wsimport
C:\WSDL\SO>wsimport -keep stas.wsdl
để tạo mã .Tôi luôn muốn có tùy chọn -keep ở đó, nhưng đó là tùy thuộc vào bạn.
=> tạo thư mục META-INF
C:\WSDL\SO>mkdir META-INF
=> Tạo META-INF/wsdl thư mục
C:\WSDL\SO>cd META-INF
C:\WSDL\SO\META-INF>mkdir wsdl
=> đi một thư mục lên.
C:\WSDL\SO\META-INF>cd ..
=> Sao chép tập tin stas.wsdl vào META-INF \ wsdl \ stas.wsdl
C:\WSDL\SO>copy stas.wsdl META-INF\wsdl\stas.wsdl
=> Tạo một kho lưu trữ jar
C:\WSDL\SO>jar -cvf StasWebServiceClient.jar com META-INF
nhập jar để không gian làm việc. Khi bạn sẽ tạo cuộc gọi thực tế cho dịch vụ, hãy sử dụng:
StasService stasService = new StasService(StasService.class.getClassLoader().getResource("META-INF/wsdl/stas.wsdl"))
giống tại đây. bất kì manh mối nào? – inquisitive
khi tôi sử dụng tùy chọn '-clientjar' bình được tạo ra do kết quả chứa ** chỉ ** thư mục META-INF. – peterh