How to write code in servicenow to connect the ftp server through midserver using JavascriptProbe
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-03-2016 09:29 AM
heeeeI want to import the file to FTP Server through mid server
I have used File builder ftp API and i am able to send the file to Mid server. From Mid server i need to pick the file and send it to ftp server.
1. I have written code to connect the FTP server as below , but i am getting the error. Please help me on this.
ExtractFileFTP --- Mid server Script include.
jspr.setJavascript("var req = new ExtractFileFTP();req.processFTPFileTransfer();");
jspr.addParameter("MID_SERVER_PATH", "Path of the midserver");
//jspr.addParameter("MID_SERVER_FILE_NAME", "csv file name ");
jspr.addParameter("MID_SERVER_FILE_NAME", midserverfileName);
jspr.addParameter("Target_SERVER_NAME", " ftp server name");
jspr.addParameter("TARGET_SERVER_USER_NAME", "user name for ftp");
jspr.addParameter("TARGET_SERVER_PASSWORD", "password of the ftp t connect");
jspr.create();
Script present in Midserver script include
initialize: function() {
this.log("Checking the intial log ");
this.ftpClient = Packages.com.org.apache.commons.net.ftp.FTPClient;
this.MID_SERVER_PATH = probe.getParameter("MID_SERVER_PATH");
this.MID_SERVER_FILE_NAME = parseInt(probe.getParameter("MID_SERVER_FILE_NAME"));
this.Target_SERVER_NAME = probe.getParameter("Target_SERVER_NAME");
this.TARGET_SERVER_USER_NAME = parseInt(probe.getParameter("TARGET_SERVER_USER_NAME"));
this.TARGET_SERVER_PASSWORD = probe.getParameter("TARGET_SERVER_PASSWORD");
}
processFTPFileTransfer : function(){
pk = new Packages.com.sshtools.j2ssh.authentication.PublicKeyAuthenticationClient();
pk.setUsername(this.TARGET_SERVER_USER_NAME);
pk.setPassword(this.TARGET_SERVER_PASSWORD);
var ssh = new Packages.com.sshtools.j2ssh.SshClient();
var ignoreHost = new Packages.com.sshtools.j2ssh.transport.IgnoreHostKeyVerification();
ssh.connect(this.Target_SERVER_NAME,ignoreHost);
authState = new Packages.com.sshtools.j2ssh.authentication.AuthenticationProtocolState();
if(ssh.authenticate(pk)==authState.COMPLETE){
var sftp = ssh.openSftpClient();
sftp.lcd(this.MIDSERVER_FILE_PATH);
sftp.cd(this.Target_SERVER_NAME);
sftp.put(this.MIDSERVER_FILE_NAME); // }
file = new Packages.java.io.File(this.MIDSERVER_FILE_PATH+this.MIDSERVER_FILE_NAME);
// Destination directory
dir = new Packages.java.io.File(this.MIDSERVER_FILE_PATH);
// Move file to new directory
success = file.renameTo(new Packages.java.io.File(dir, file.getName()));
}
}
while running the above script i am getting BELOW ERROR : Help me how to overcome this issue.
<output>Evaluation error: Caused by error in JavaScript probe 'ExtractFileFTP' at line 1
==> 1: var req = new ExtractFileFTP();req.processFTPFileTransfer();
java.net.DualStackPlainSocketImpl.connect0(Native Method)
java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
java.net.Socket.connect(Socket.java:589)
java.net.Socket.connect(Socket.java:538)
java.net.Socket.<init>(Socket.java:434)
java.net.Socket.<init>(Socket.java:211)
com.sshtools.j2ssh.net.SocketTransportProvider.<init>(SocketTransportProvider.java:51)
com.sshtools.j2ssh.net.TransportProviderFactory.connectTransportProvider(TransportProviderFactory.java:79)
com.sshtools.j2ssh.SshClient.connect(SshClient.java:776)
com.sshtools.j2ssh.SshClient.connect(SshClient.java:664)
com.sshtools.j2ssh.SshClient.connect(SshClient.java:587)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:497)
org.mozilla.javascript.MemberBox.invoke(MemberBox.java:138)
org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:292)
org.mozilla.javascript.ScriptRuntime.doCall(ScriptRuntime.java:2577)
org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
org.mozilla.javascript.gen.script_include_ExtractFileFTP_27._c_anonymous_2(script_include:ExtractFileFTP:32)
org.mozilla.javascript.gen.script_include_ExtractFileFTP_27.call(script_include:ExtractFileFTP)
org.mozilla.javascript.ScriptRuntime.doCall2(ScriptRuntime.java:2645)
org.mozilla.javascript.ScriptRuntime.doCall(ScriptRuntime.java:2582)
org.mozilla.javascript.optimizer.OptRuntime.callProp0(OptRuntime.java:85)
org.mozilla.javascript.gen.probe_ExtractFileFTP_5._c_script_0(probe:ExtractFileFTP:1)
org.mozilla.javascript.gen.probe_ExtractFileFTP_5.call(probe:ExtractFileFTP)
org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:560)
org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3439)
org.mozilla.javascript.gen.probe_ExtractFileFTP_5.call(probe:ExtractFileFTP)
org.mozilla.javascript.gen.probe_ExtractFileFTP_5.exec(probe:ExtractFileFTP)
com.service_now.mid.script.MIDScript.executeCompiledScript(MIDScript.java:193)
com.service_now.mid.script.MIDScript.evaluate(MIDScript.java:109)
com.service_now.mid.probe.JavascriptProbe.probe(JavascriptProbe.java:46)
com.service_now.mid.probe.AProbe.process(AProbe.java:91)
com.service_now.mid.queue_worker.AWorker.runWorker(AWorker.java:119)
com.service_now.mid.queue_worker.AWorkerThread.run(AWorkerThread.java:20)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)</output>
- 1,718 Views
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-31-2017 06:26 PM
Can you tell me what you did to resolve this? I have the same issue.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-10-2020 03:19 PM
Did you ever find a way to get ServiceNow to retrieve a file from an external FTP server?
We have a similar requirement.