@LooKs escreveu:
estou tendo o seguinte erro quando tendo fazer o retorno da classe carregada dinamicamente:
java.lang.ClassCastException: java.lang.String cannot be cast to java.net.Socketclasse que é carregada de forma dinamica
public static Socket servidor(){ Socket conexaoCliente = null; try{ // JOptionPane.showMessageDialog(null, "lol \n" + resultados.toString()); ServerSocket servidor = new ServerSocket(Integer.parseInt(resultados.get(1))); System.out.println("A porta " + servidor.getLocalPort() + " esta aberta para conexão"); System.out.println("Mensagem do servidor: Bom dia/tarde/noite"); JOptionPane.showMessageDialog(null, "Estou esperando uma conexão"); conexaoCliente = servidor.accept(); JOptionPane.showMessageDialog(null, "Estou conectato"); System.out.println("O cliente" + conexaoCliente.getInetAddress().getHostAddress()+" esta conectado"); // Escreve escreve = new Escreve(resultados.get(1), conexaoCliente, nC ); // new Thread(escreve).start(); // JOptionPane.showMessageDialog(null, "Olha esse contador: " + nC); nC++; }catch(IOException e){ System.out.println("Erro: " + e.getMessage()); } return conexaoCliente; }
classe que invoca a outra dinamicamente:
public static void carregaComunicação(){ caminhoArquivoComunica = new String(suporte.getCaminhoJarComunicacao()); try{ myJarFile = new URL("file:///"+ caminhoArquivoComunica); URLClassLoader cl = URLClassLoader.newInstance(new URL[]{myJarFile}); Jarred = cl.loadClass(suporte.getCaminhoPacoteComunica()); simpleWriter = Jarred.getMethod("setParams", new Class[] {String.class}); JarredObject = Jarred.newInstance(); Object response = simpleWriter.invoke(JarredObject, suporte.getMensagemFinalComunicacao()); suporte.setServidor((Socket) response); JOptionPane.showMessageDialog(null, "=D"); //JOptionPane.showMessageDialog(null, "mensagem enviada: " + suporte.getMensagemFinalComunicacao() + "\n caminho especificado" + caminhoArquivoComunica ); }catch(IllegalArgumentException e){ System.out.println("Argumentos invalidos1-1: " + e.getMessage()); }catch(IllegalAccessException ex){ System.out.println("Acesso negado1-2: " + ex.getMessage()); }catch(InvocationTargetException erro){ System.out.println("O metodo nao pode ser invocado1-3: " + erro.getMessage()); }catch(MalformedURLException e){ System.out.println("Erro no caminho do arquivo1-4: " + e.getMessage()); }catch(InstantiationException e){ System.out.println("Erro ao instanciar o objeto1-5: " + e.getMessage()); }catch(NoSuchMethodException e){ System.out.println("Erro ao carregar o metodo1-6: " + e.getMessage()); }catch(SecurityException ex){ System.out.println("Erro no tipo do metodo1-7: " + ex.getMessage()); }catch(ClassNotFoundException e){ System.out.println("Erro no carregamento do pacote/classe1-8: " + e.getMessage()); } }
não consigo capturar o retorno, pois preciso do retorno para usar em outra parte do codigo
OBS: a classe servidor é um .jar que esta sendo carregada de forma dinamica ._.
Mensagens: 3
Participantes: 2