[ nDDn @ 22.02.2007. 21:35 ] @
Radim klijent server aplikaciju, koristim rmi tehnologiju. Pored osnovnih operacija zelim da implementiram i jednu dodatnu. Kada se klijent pokrene trebao bi automatski da kreira fajl na url-u gde se nalaze Interfejs.class i InterfejsImpl_Stub.class, tj. na tom url-u server upisuje ova dva fajla. Koristim IIS gde sam cekirala opciju Write. Evo kako mi izgleda kod za jedan primer koji pravi fajl na nekoj url adresi: package upisivanjeufajl; import java.io.*; import java.net.*; public class Upisivanje { static OutputStream os; static OutputStreamWriter fos; public static boolean posalji(String ip, String fajl){ try{ URL url = new URL("http://" + ip + "/javarmi/" + fajl); System.out.println(url.getFile()); URLConnection urlc = url.openConnection(); urlc.setDoOutput(true); os = urlc.getOutputStream(); fos = new OutputStreamWriter(os); System.out.println("FOS: " + urlc.getContentLength()); } catch(Exception e){ e.printStackTrace(); return false; } return true; } public static void upisi(String poruka){ try{ fos.write('a'); fos.write(1); fos.flush(); } catch(Exception e){ e.printStackTrace(); } } public static boolean preuzmi(String ip, String fajl){ try{ int c; URL url = new URL("http://" + ip + "/javarmi/" + fajl); URLConnection urlc = url.openConnection(); int duzina = urlc.getContentLength() + 1; if(duzina > 0){ InputStream is = urlc.getInputStream(); //FileOutputStream fos = new FileOutputStream(fajl); //DataOutputStream dos = new DataOutputStream(fos); int i = duzina; while(((c = is.read()) != -1) && (--i > 0)){ //dos.writeByte(c); //System.out.println((byte)c); } is.close(); fos.close(); } return true; } catch(Exception e){ e.printStackTrace(); return false; } } public static void main(String[] args) throws Exception { posalji("127.0.0.1", "1.txt"); upisi("Zdravo"); preuzmi("127.0.0.1", "1.txt"); } } Medjutim program ne pravi fajl i program naravno puca kod metode preuzmi posto nije nasao fajl. U cemu gresim? Hvala. |