ネットワークドライブからファイルを読み込む必要のあるJava Webアプリケーションがあります。私はWindowsの資格情報でログインしているので、私がlocalhostのテストサーバーでそれを実行すると、完璧に動作します。ただし、会社のサーバーに展開しても機能しません。新しいSmbFileInputを作成するときにNullpointerExceptionが発生する
私がファイルにアクセスしようとしたときに沿って、ユーザーの資格情報を送信する方法を実装しようとしている、と私の現在の試みは、私は私のコードのニーズが、this answerのコードで私の試みを基づかいThe Java CIFS Client Library
を使用していますファイルへの書き込みではなくファイルからの読み取り。説明できないNullpointerExceptionが発生しています。
コード:
public static void main(String[] args) {
String filePath = "[myPath]";
String USER = "domain;username:password";
try {
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(USER);
SmbFile sFile = new SmbFile(filePath, auth);
if(sFile.exists()){
InputStream stream = new SmbFileInputStream(sFile); //throws exception
}
} catch (SmbException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
エラー:ユーザーの資格情報が受け入れられる
Exception in thread "main" java.lang.NullPointerException
at jcifs.smb.ServerMessageBlock.writeString(ServerMessageBlock.java:213)
at jcifs.smb.ServerMessageBlock.writeString(ServerMessageBlock.java:202)
at jcifs.smb.SmbComNTCreateAndX.writeBytesWireFormat(SmbComNTCreateAndX.java:170)
at jcifs.smb.AndXServerMessageBlock.writeAndXWireFormat(AndXServerMessageBlock.java:101)
at jcifs.smb.AndXServerMessageBlock.encode(AndXServerMessageBlock.java:65)
at jcifs.smb.SmbTransport.doSend(SmbTransport.java:439)
at jcifs.util.transport.Transport.sendrecv(Transport.java:67)
at jcifs.smb.SmbTransport.send(SmbTransport.java:655)
at jcifs.smb.SmbSession.send(SmbSession.java:238)
at jcifs.smb.SmbTree.send(SmbTree.java:119)
at jcifs.smb.SmbFile.send(SmbFile.java:775)
at jcifs.smb.SmbFile.open0(SmbFile.java:989)
at jcifs.smb.SmbFile.open(SmbFile.java:1006)
at jcifs.smb.SmbFileInputStream.<init>(SmbFileInputStream.java:73)
at jcifs.smb.SmbFileInputStream.<init>(SmbFileInputStream.java:65)
at Test.main(Test.java:45)
。私は有効な資格情報と無効な資格情報の両方を試しましたが、無効な資格情報はユーザーの識別エラーをもたらします。
入力ストリームを作成するときに例外がスローされます。これは通常、パラメータsFile
オブジェクトがnull
であるか、またはnull
フィールドであると考えさせます。私はこれがどの分野か分かりません。デバッグには、isExists = true
が表示されます。 URLも有効です。ここでは、デバッガからの私SFILEオブジェクトのスクリーンショットです:
私はここで何をしないのですか?なぜ私はnullpointerexceptionを取得するのですか?