JWS Can't access FTP using socket?

Hi there,

I have a small application which access an FTP server to download/upload files. And this application is running in my clients using JWS.

I am having problems when this application tries to access the FTP server (when using the .jar file in my local machine everything works fine) - on port 21

java.net.MalformedURLException: unknown protocol: socket

at java.net.URL.<init>(Unknown Source)

at java.net.URL.<init>(Unknown Source)

at java.net.URL.<init>(Unknown Source)

at java.net.URI.toURL(Unknown Source)

at com.sun.deploy.net.proxy.DeployProxySelector.connectFailed(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at java.net.Socket.<init>(Unknown Source)

at java.net.Socket.<init>(Unknown Source)

at br.com.kooky.sikget.lib.FTPConnection.connect(FTPConnection.java:132)

at br.com.kooky.sikget.lib.FTPConnection.connect(FTPConnection.java:124)

at br.com.kooky.sikget.ui.EDIUI.isFTPConnected(EDIUI.java:153)

at br.com.kooky.sikget.ui.EDIUI.setDownloadEDI(EDIUI.java:206)

at br.com.kooky.sikget.ui.EDIUI.access$1200(EDIUI.java:45)

at br.com.kooky.sikget.ui.EDIUI$2$1.run(EDIUI.java:135)

at java.awt.event.InvocationEvent.dispatch(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

Following is the first line pointed in the StackTrace (FTPConnection.java:132):

connectionSocket =new Socket(host, port);

Any idea what should I do?

[2108 byte] By [Franziska] at [2007-11-26 21:36:20]
# 1
I cant believe nobody has seen this error before!!!!
Franziska at 2007-7-10 3:17:35 > top of Java-index,Desktop,Deploying...
# 2

I tried a simple testcase, and it seems to work fine for me:

import java.net.*;

class test {

public static void main(String[] args) {

try {

Socket s = new Socket("javaweb.sfbay.sun.com", 21);

System.out.println("s: " + s);

} catch (Exception e) {

e.printStackTrace();

}

}

}

when run with java web start:

network: Connecting socket://127.0.0.1:3305 with proxy=DIRECT

network: Connecting socket://javaweb.sfbay.sun.com:21 with proxy=DIRECT

s: Socket[addr=javaweb.sfbay.sun.com/10.5.31.43,port=21,localport=3310]

Do you need socks proxy to connect to the socket ? If so, you will need to enter that from your default browser or java control panel, so java web start will pick that up.

To find out what's proxy is used, you can enable java console and tracing via java control panel, and then in deployment.properties (c:\documents and settings\username\application data\sun\java\deployment\deployment.properties), set

deployment.trace=true

deployment.trace.level=basic|net

and then re-run your application again, and see what proxy is used when connecting to the socket.

funchunga at 2007-7-10 3:17:36 > top of Java-index,Desktop,Deploying...