2013-03-03 34 views
6

Tôi đang cố gắng chạy ứng dụng khách web trên jdk1.5 và cung cấp cho tôi lỗi sau:javax.xml.ws.WebServiceException: Nhà cung cấp com.sun.xml.internal.ws.spi.ProviderImpl không tìm thấy

javax.xml.ws.WebServiceException: Provider com.sun.xml.internal.ws.spi.ProviderImpl not found 

Mọi đề xuất sẽ được đánh giá cao.

+0

Vui lòng cung cấp thêm chi tiết: loại máy khách webservice nào. Có lẽ một số mã đăng bài sẽ giúp đỡ. –

+0

máy khách dịch vụ web là để gửi sms (tin nhắn văn bản) và dự định được sử dụng sau khi tải các lớp học về Oracle và vì lý do đó tôi bắt buộc phải sử dụng JDK 1.5 – user2079954

+0

Bất kỳ Đề xuất nào sẽ thực sự được đánh giá cao – user2079954

Trả lời

6

Đảm bảo rằng trên con đường của bạn, bạn cũng có thể tìm thấy lọ chứa lớp com.sun.xml.internal.ws.spi.ProviderImpl. Tôi đã kiểm tra cái bình nào có thể cần và here bạn có thể thấy các lọ chứa lớp đã cho. Bất kỳ người trong số họ có thể giúp bạn.

+0

cách chúng tôi có thể xác định phiên bản jar nào sẽ tương thích với JDK 1.5 – user2079954

+0

Trong liên kết được cung cấp cũng có thông tin này: class com .sun.xml.ws.spi.ProviderImpl [1362 bytes, jvm> = 1.5] jaxws-rt-2.0EA3.jar lớp com.sun.xml.ws.spi.ProviderImpl [4883 bytes, jvm> = 1.5] jaxws-rt-2.1EA1.jar lớp com.sun.xml.ws.spi.ProviderImpl [9033 bytes, jvm> = 1.5] jaxws-rt-2.1.4.jar jaxws-rt-2.1.3. jar –

+0

Rất hữu ích Rất cám ơn – user2079954

2

Tôi không biết lý do chính xác tại sao nó không thể tìm thấy lớp phù hợp nhưng tôi nghĩ rằng đó là một số vấn đề với trình tải lớp Java (hoặc tính năng) trong cơ sở dữ liệu Oracle khi tìm kiếm tài nguyên.

Tôi đã tải triển khai tham chiếu JAX-WS từ java.net với tất cả các phụ thuộc của nó với người dùng SYS (với quyền truy cập công cộng và từ đồng nghĩa công khai). Nhưng các lớp được tạo ra từ WSDL dịch vụ mà tôi đã nạp vào lược đồ SCOTT của người dùng. Và vì một số lý do khi SCOTT chạy các thủ tục sử dụng dịch vụ, javax.xml.ws.spi.FactoryFinder tra cứu tên triển khai trong tài nguyên META-INF/services/javax.xml.ws.spi.Provider (có giá trị chính xác com.sun.xml.ws.spi.ProviderImpl) nhưng không thể tìm thấy tài nguyên này để cố gắng tải nhà cung cấp từ tên lớp được mã hóa cứng (com.sun.xml.internal.ws.spi.ProviderImpl) và không thành công.

Giải pháp cho tôi là tải tất cả các tệp META-INF/services/* từ tất cả các biến JAX-WS RI và các gói phụ thuộc vào lược đồ SCOTT. Cách khác có thể là tải tất cả RI-WS RI, phụ thuộc chương trình cuối cùng vào cùng một lược đồ.

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