- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 expdp cmd 创建表 A_LOCKER 的 dmp 文件,然后通过 sftp 将其返回到部署了我的 java 代码的本地计算机。该服务器是一个 oracle weblogic 服务器。该代码第一次工作正常,但从第二次开始,它给出错误:权限被拒绝
dmp文件是在我创建的数据泵目录Extract中创建的。
现在我尝试通过 sftp 传输 dmp 文件,为此我需要为该文件提供 sudo 权限所以我在我的java代码中尝试了以下操作:1)创建 session :
StringBuffer cmd = new StringBuffer();
FileOutputStream fileOutputStream = null;
SshClient ssh = new SshClient();
SessionChannelClient session = null;
SftpClient sftp = null;
HostKeyVerification host = new IgnoreHostKeyVerification();
// Try to connect to the machine that includes the shared folder
// Throw an exception when a connection is failed.
try {
ssh.connect(machine, host);
} catch (IOException e) {
logger.error("Cannot connect to dbserver in machine "
+ machine,e);
throw new EPCShareFileException(
"Cannot connect to dbserver location in machine "
+ machine, e);
}
PasswordAuthenticationClient auth = new PasswordAuthenticationClient();
auth.setUsername(user);
auth.setPassword(password);
// Authenticate user name and password for connection
// Throw an exception if authentication is failed
try {
ssh.authenticate(auth);
} catch (IOException e) {
logger.error("Cannot authenticate user "
+ user + " " + " password " + password);
ssh.disconnect();
throw new EPCShareFileException("Cannot authenticate user "
+ user + " " + " password " + password, e);
}
2)使用伪权限执行chmod命令
cmd.append("/usr/local/bin/sudo /bin/chmod -R 777 ")
.append(location+dbDumpFileName);
try{
session = ssh.openSessionChannel();
session.executeCommand(cmd.toString());
} catch (IOException e){
logger.error("Cannot execute chmod cmd");
}
finally{
try {
session.close();
} catch (IOException e) {
// TODO Auto-generated catch block
logger.info("Cannot close the session:"+e.getMessage());
}
}
3)然后我尝试将 dmp 文件 sftp 到本地服务器
try {
sftp = ssh.openSftpClient();
} catch (IOException e) {
logger.error("Cannot open connection to database server");
ssh.disconnect();
throw new EPCShareFileException(
"Cannot open connection to database server");
}
try{
fileOutputStream = new FileOutputStream(dbDumpFileName);
sftp.get(location+dbDumpFileName, fileOutputStream);
}catch (IOException e) {
**throw new EPCShareFileException("Cannot retrive file "
+"Error:"+e.getMessage());**
}finally{
try {
fileOutputStream.close();
sftp.quit();
fileOutputStream = null;
sftp = null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ssh.disconnect();
ssh = null;
}
当我第一次将代码作为ear文件部署在oracle weblogic服务器上时,它是工作文件,并且dmp文件也被创建并通过sftp传输到所需的位置但从第二次开始我收到错误: 错误:权限被拒绝
请帮忙..
最佳答案
首先,永远不要使用chmod -R 777
- 这就像向任何有权访问该机器的人发布您的数据,不问任何问题。如果您使用它来调试问题,那么好吧,但不要忘记将其更改回来(或摆脱它;您根本不需要它)。
要调试“权限被拒绝”错误,您需要有权访问计算机。在计算机上,您需要以出现错误的用户身份登录(不要尝试以 root 或其他用户身份登录)。
作为该用户,尝试访问您无法访问的路径中的每个文件夹。因此,如果 /srv/www/foo/bar/x/y/z/file.txt
失败,那么您需要
ls /srv
ls /srv/www/
ls /srv/www/foo/
ls /srv/www/foo/bar/
ls /srv/www/foo/bar/x/
ls /srv/www/foo/bar/x/y/
ls /srv/www/foo/bar/x/y/z/
ls /srv/www/foo/bar/x/y/z/file.txt
按照这个顺序进行。找到第一个失败的命令,然后检查为什么该用户没有相关文件夹的权限。
关于java - 使用部署在 Oracle Weblogic 服务器上的 Java 代码时,数据泵目录中的 chmod 命令第二次不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22916173/
我要附上 child window到外部应用程序。子窗口将是一个无模式对话框。由于我不拥有外部应用程序(实际上是 Microsoft FSX)的源代码,因此我不知道如何挂接到消息循环或回调中 LRES
更新:在确保我的命令、串行配置和终止符 ('\r') 正确后,我在 5 台计算机中的 1 台上运行。这让我相信这是一个适配器问题。我打算调用公司,了解有关订购 USB/RJ11 适配器的信息(我一直在
我是一名优秀的程序员,十分优秀!