2010-04-13 25 views
10

Tôi có một mô-đun GWT với X-GWT-Module-Base http://host:8080/foo/ và muốn gọi một (GWT) dịch vụ được đặt tại http://host:8080/bar/. Lý do là ví dụ rằng tôi muốn có thể chia sẻ một dịch vụ GWT giữa hai dự án khách hàng GWT khác nhau.Gọi một dịch vụ GWT trong một ngữ cảnh khác với Cơ sở Mô-đun GWT?

Tất cả những gì tôi đã làm cho đến thời điểm này là nếu dịch vụ nằm trong ngữ cảnh mô-đun, tức là http://host:8080/foo/bar hoạt động tốt, sử dụng @RemoteServiceRelativePath("bar") trong giao diện dịch vụ của tôi.

Dường như chỉ @RemoteServiceRelativePath chỉ cho phép giá trị liên quan đến URL cơ sở mô-đun ... vậy có cách nào khác để thực hiện những gì tôi đang cố gắng thực hiện không?

Trả lời

14

Đã kết thúc việc tìm kiếm câu trả lời bản thân mình right here:

vấn đề xuất hiện vì sự RemoteServiceRelativePath như bạn nhận thấy nó nói relativepath, một cách để khắc phục điều đó là sử dụng

((ServiceDefTarget)gwtService).setServiceEntryPoint("/some/absolute/path"); 

hoặc sử dụng sức mạnh của đường dẫn tương đối (đó là cách tôi làm điều đó, vì tôi là lười biếng)

@RemoteServiceRelativePath("../servX") 

mà thay vì/modB/servX hoặc/Moda/servX sẽ trở thành/servX không có vấn đề gì mô-đun gọi nó cũng có thể bạn sẽ cần phải thực hiện những thay đổi thích hợp trong web.xml để các

+0

Bạn có thể đánh dấu mình là câu trả lời. +1 từ tôi. – mgiuca

+0

Tôi sẽ chỉ thêm 'gwtService' vào đây là tên của đối tượng dịch vụ không đồng bộ mà bạn đã quay lại từ GWT.create và bạn nên gọi setServiceEntryPoint ngay sau khi bạn gọi GWT.create. Đây là một giải pháp bực bội như vậy ... nó làm cho cuộc sống khá khó khăn cho các dự án khách hàng (tôi muốn quấn lên các chi tiết URL trong thư viện). Oh well. – mgiuca