簡體   English   中英

從JBoss Web服務訪問文件(用於寫入)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM