Android file transfer not working via XMPP and OpenFire

Problem . Unable to get file sent to Android app via XMPP and OpenFire Server. However, I can successfully send the file. I am using asmack jar asmack-jse-buddycloud-2010.12.11.jar

Code :

connConfig = new ConnectionConfiguration("beta.myCompany.co.uk", 5222); connConfig.setSASLAuthenticationEnabled(true); try { connect("username", "password"); } catch (Exception e) { e.printStackTrace(); } ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(connection); if(sdm == null) sdm = new ServiceDiscoveryManager(connection); fileTransferManager = new FileTransferManager(connection); FileTransferNegotiator.setServiceEnabled(connection, true); fileTransferManager.addFileTransferListener(new FileTransferListener() { @Override public void fileTransferRequest(FileTransferRequest request) { IncomingFileTransfer transfer = request.accept(); try { FileOutputStream fos = openFileOutput(request.getFileName(), Context.MODE_PRIVATE); InputStream stream = transfer.recieveFile();//THIS FAILS! fos.write(IOUtils.toByteArray(stream)); fos.close(); } catch (Exception e) { e.printStackTrace(); } } 

Error (if the file was sent via Spark) :

Execution error: - caused by: java.util.concurrent.ExecutionException: there is no response from the file. transfer initiator:

Error (if the file was sent via Adium) :

java.util.concurrent.ExecutionException: Failed to install socket with any host provided: item-not-found (404) Failed to install socket with any host provided

Error (if the file was sent through another instance of my application) :

Execution error: - caused by: java.util.concurrent.ExecutionException: - caused by: No response from the remote client:

My logs: (When trying to get a file from Spark)

It looks like I'm SENDING this error! (Doesn't get it). Why should it be?

 > 05-01 12:49:36.013: I/System.out(1000): 12:49:35 PM SENT (1093411736): > <iq id="791-6222" to="beta.myCompany.co.uk" > from="theUsername@beta.myCompany.co.uk/BAM-1918973529" type="error"><error > code="501" type="CANCEL"><feature-not-implemented > xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq> 

Additional magazines :

 05-01 14:46:06.133: I/System.out(1370): 02:46:06 PM RCV (1093401112): <iq id="eRi5A-72" to="myUsername@beta.myCompany.co.uk/BAM-1755858011" from="friendsUsername@beta.myCompany.co.uk/Spark 2.6.3" type="set"><si xmlns="http://jabber.org/protocol/si" id="jsi_5991130279184702850" profile="http://jabber.org/protocol/si/profile/file-transfer"><file xmlns="http://jabber.org/protocol/si/profile/file-transfer" name="Test.rtf" size="318"><desc>Sending file</desc></file><feature xmlns="http://jabber.org/protocol/feature-neg"><x xmlns="jabber:x:data" type="form"><field var="stream-method" type="list-single"><option><value>http://jabber.org/protocol/bytestreams</value></option><option><value>http://jabber.org/protocol/ibb</value></option></field></x></feature></si></iq> 05-01 14:46:08.283: I/System.out(1370): 02:46:08 PM SENT (1093401112): <iq id="eRi5A-72" to="friendsUsername@beta.myCompany.co.uk/Spark 2.6.3" from="myUsername@beta.myCompany.co.uk/BAM-1755858011" type="result"><si xmlns="http://jabber.org/protocol/si"><feature xmlns="http://jabber.org/protocol/feature-neg"><x xmlns="jabber:x:data" type="submit"><field var="stream-method"><value>http://jabber.org/protocol/bytestreams</value></field></x></feature></si></iq> 05-01 14:46:08.312: I/System.out(1370): 02:46:08 PM RCV (1093401112): <iq id="eRi5A-73" to="myUsername@beta.myCompany.co.uk/BAM-1755858011" type="get" from="friendsUsername@beta.myCompany.co.uk/Spark 2.6.3"><query xmlns="http://jabber.org/protocol/disco#info"/></iq> 05-01 14:46:14.352: W/System.err(1370): Error in execution: 05-01 14:46:14.352: W/System.err(1370): -- caused by: java.util.concurrent.ExecutionException: No response from file transfer initiator:[ [ERROR LOG IS HERE] 05-01 14:46:14.732: I/System.out(1370): 02:46:14 PM SENT (1093401112): <iq id="eRi5A-73" to="friendsUsername@beta.myCompany.co.uk/Spark 2.6.3" type="result"><query xmlns="http://jabber.org/protocol/disco#info"><identity category="client" name="Smack" type="pc"/><feature var="http://jabber.org/protocol/caps"/><feature var="http://jabber.org/protocol/bytestreams"/><feature var="http://jabber.org/protocol/si/profile/file-transfer"/><feature var="http://jabber.org/protocol/si"/><feature var="http://jabber.org/protocol/ibb"/></query></iq> 05-01 14:46:14.773: I/System.out(1370): 02:46:14 PM RCV (1093401112): <iq id="eRi5A-77" to="myUsername@beta.myCompany.co.uk/BAM-1755858011" type="set" from="friendsUsername@beta.myCompany.co.uk/Spark 2.6.3"><query xmlns="http://jabber.org/protocol/bytestreams" sid="jsi_5991130279184702850" mode="tcp"><streamhost jid="friendsUsername@beta.myCompany.co.uk/Spark 2.6.3" host="10.95.104.25" port="7777"/><streamhost jid="proxy.beta.myCompany.co.uk" host="127.0.1.1" port="7777"/></query></iq> 05-01 14:46:29.783: I/System.out(1370): 02:46:29 PM RCV (1093401112): <iq type="get" id="537-7113" from="beta.myCompany.co.uk" to="myUsername@beta.myCompany.co.uk/BAM-1755858011"><ping xmlns="urn:xmpp:ping"/></iq> 05-01 14:46:29.843: I/System.out(1370): 02:46:29 PM SENT (1093401112): <iq id="537-7113" to="beta.myCompany.co.uk" from="myUsername@beta.myCompany.co.uk/BAM-1755858011" type="error"><error code="501" type="CANCEL"><feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq> 
+8
android file-transfer xmpp asmack openfire
source share
2 answers

Use

 transfer.receiveFile(myLocalFile); 

instead

 InputStream stream = transfer.receive(); 

You are blocking the PacketReader stream. The first method will spawn its own stream in order to read the specific packages that make up the parts of the transferred file. If you use the second method, you must create your own stream in order to actually read and write files.

+3
source share

I created a simple Java program with some copy of another user code, but the point + is that it works, I tried this b / w LocalHost - SPark client - javaProgram

you can send txt.file to another user created in the OpenFile user section.

Note. Please change any thing if you want to receive any details in the Xmpp.test class.

Download XMPp File Transfer "Java Code" here

0
source share

All Articles