2011-11-05 25 views
5

Tôi cố gắng để đọc một tập tin với tôi "RemoteServiceServlet" nhưng điều này làGWT - RPC - nhận servlet đường dẫn tuyệt đối để làm cho dir

  • Tôi muốn tạo ra một thư mục mà con đường có liên quan đến servlet như

absolute_servlet_path/mypackage/

Nhưng vấn đề là ...

mã như

ServletContext servletContext = this.getServletContext(); 
String pathContext = servletContext.getRealPath(""); 

... mang đến cho không "C:/..." nhưng "/" chỉ để mã không thể được sử dụng với đối tượng java.io.File.

Vì vậy, câu hỏi của tôi là làm thế nào tôi có thể sử dụng java.io.File với RemoteServiceServlet?

Trả lời

3

OK ... Tôi phải tiếp tục đào ...

Tôi vẫn đang tìm cách đường dẫn servlet tương đối nhưng đường dẫn tuyệt đối; và bây giờ một lần nữa tôi cố gắng sử dụng bối cảnh nhưng lần này tôi đổi mã của tôi theo hướng này ...

ServletContext servletContext = this.getServletContext(); 
String pathContext = servletContext.getRealPath("/WEB-INF/"); 

... và nó làm việc cho Tomcat của tôi :)

Tôi hy vọng nó tiết kiệm ngày của một người

Cảm ơn

+0

Tôi hy vọng bạn hiểu rằng thư mục này là nơi tệp WAR của bạn được triển khai. Khi bạn redeploy ứng dụng của bạn bất cứ điều gì bạn đặt trong đó rất có thể sẽ bị xóa. – Strelok

+0

Chắc chắn :) Tôi cần nó chỉ cho các tập tin tạm thời ứng dụng web của tôi. Tôi đã không sử dụng user.home vv nhưng để có một con đường liên quan. Vì vậy, nó là OK như đối với tôi :) – user592704

+2

Một chút độc đáo. Có lẽ bạn muốn xem xét các cách tiêu chuẩn hơn để tạo các tệp tạm thời, được thảo luận tại đây http://stackoverflow.com/questions/617414/create-a-temporary-directory-in-java – Strelok

1

Tôi nghĩ bạn hiểu sai về cách servlet hoạt động. Một "servlet" chỉ là một lớp được cấu hình thông qua tệp web.xml để xử lý các yêu cầu trên một đường dẫn nhất định tại một URL. Đó là bây giờ cách liên quan đến hệ thống tập tin ở tất cả.

Tại sao bạn muốn tạo thư mục có liên quan đến URL của servlet? Bạn đang cố gắng để thực hiện?

+0

Tôi chỉ đang cố gắng để có được hiệu ứng tương tự như ứng dụng dành cho máy tính để bàn. Đó là đường dẫn mặc định như "." đối với đối tượng Tệp. Vì vậy, không sử dụng user.home hoặc một cái gì đó :) – user592704

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