2014-01-29 40 views
0

如果文件存在,我想檢入文件系統。 此代碼是工作在SSJS,我可以正確地看到,如果該文件存在與否:無法從Java代理訪問文件系統

var filePath = "/folder/temp.xlsx"; 
var inStream:NotesStream = session.createStream(); 
    if(inStream.open(filePath,"ASCII")){ 
     if(inStream.getBytes()>0){ 

    .... 

     }else{...} 
     }else{...} 

但是這個代碼,尋找exaxt同一個文件是不是在代理工作:(!!)

Session session = getSession(); 
    Stream inStream = session.createStream(); 
    String filePath = "/folder/temp.xslx"; 
    if(inStream.open(filePath,"ASCII")){ 
        if(inStream.getBytes()>0){ 

    ... 
    }else{...} 
    }else{...} 

它總是進入第二個else,這意味着inStream.open(file ...)爲false。

xpages文件訪問和代理文件訪問有什麼區別? 任何解決方案?

+0

究竟是那個文件(絕對路徑)?我認爲代理和XP的當前路徑是不同的。 –

+0

代理如何運行?在AMGR?在HTTP任務? –

回答

3

您可能需要提高代理的安全級別。爲了能夠從代理訪問文件系統。

enter image description here

+0

不僅代理必須使用允許執行此操作的ID進行簽名。 –

+0

選擇「allow」並且用戶擁有所需的權限。順便說一下,兩者都非常重要,應該始終在代理商中考慮。這是我以前的問題... :) –

+0

如果你嘗試使用Java FileInputStream,那麼無論如何在java中寫這個,那麼爲什麼不使用它呢?另外,請看一下java安全策略文件。在Windows上,您可以在Domino \ jvm \ lib \ security \ java.policy中找到它 –

1

你可能在你的JVM編輯權限。

在Lotus Domino的JVM的lib/security /目錄中編輯文件java.policy。 例如C:\ Program Files文件\ IBM \的Lotus \ NOTES \ JVM \ lib \ security中\ java.policy中

測試你可以授予這樣的所有權限:

grant { 
permission java.security.AllPermission; 
}; 

您必須重新啓動JVM。最簡單的是重啓服務器。但是也許重新啓動http就行了。

+1

這隻會使服務器不安全。更正確的方法是使用下面的例如從http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=%2Fcom.ibm.websphere.express.doc%2Finfo%2Fexp%2Fae%2Frsec_javapolicy.html: 授權codeBase「 file:user_client_installed_location「權限java.io.FilePermission 」C:\ WebSphere \ AppServer \ java \ jre \ lib \ ext \ mail.jar「,」read「; }; –