[英]Accessing a file (for writing) from a JBoss Web Service
假設我具有Java Web應用程序的以下結構:
TheProject
-- [Web Pages]
-- -- abc.txt
-- -- index.jsp
-- [Source Packages]
-- -- [wservices]
-- -- -- WS.java
WS.java
是我的Web服務,位於wservices
包中。 現在,通過此服務,我需要訪問abc.txt
文件並對其進行寫入。
這些是我的網址:
http://127.0.0.1:8080/TheProject/WS <- the webservice
http://127.0.0.1:8080/TheProject/abc.txt <- the file I want to access
要讀取文件,我嘗試使用getResourceAsStream
並成功讀取了該文件。 但是現在我也想寫這個文件, 嘗試了這種方法但是失敗了。
有沒有一種方法可以使我從WS.java
訪問abc.txt
文件,並且能夠成功讀取和寫入該文件?
您必須首先找到該文件,然后在其上打開一個File對象,然后可以照常使用它。 從“ getResource”返回的URL開始,然后從那里開始。
注意:此技巧將對應用程序服務器部署WAR文件的方式做出假設,並將使其不可移植。
好吧,可以閱讀。 您可以通過從以下路徑訪問文件來訪問它:(我假設您的Web服務打包在WAR文件中)
@Resource
private WebServiceContext context;
......
// receive the realpath to foo.txt inside of web-archive deployment
((ServletContext )context.getMessageContext().get(MessageContext.SERVLET_CONTEXT)).getRealPath("foo.txt")
但是寫一個總的來說是個壞主意-JBOSS會將您的應用程序解壓縮到一些tmp文件夾中。 因此,每次您的應用程序重新啟動時,您都會收到新的foo.txt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.