Oi.
estou com um problema e não estou conseguindo resolver.Estou tentando passar um List como argumento, mas não esta dando certo, porem se eu mudar para String ou algo do gênero eu consigo passar o argumento tranquilamente ._.
Metodo que faz a invocação:
public static void carregaComunicação() throws InterruptedException, InvocationTargetException, NoSuchMethodException{
List<Object> test = new ArrayList<Object>();
String nome="";
test.add(nome);
caminhoArquivoComunica = new String("C:\\Users\\lucas.oliveira\\Desktop\\ServidorDinamico.jar");
try{
myJarFile = new URL("file:///"+ caminhoArquivoComunica);
URLClassLoader cl = URLClassLoader.newInstance(new URL[]{myJarFile});
Jarred = cl.loadClass("principal.Servidor");
simpleWriter = Jarred.getMethod("servidor", new Class[] {List.class});
JarredObject = Jarred.newInstance();
Object response = simpleWriter.invoke(JarredObject, test.get(0));
System.out.println(test.get(0));
//JOptionPane.showMessageDialog(null, "mensagem enviada: " + suporte.getMensagemFinalComunicacao() + "\n caminho especificado" + caminhoArquivoComunica );
}catch(IllegalAccessException ex){
System.out.println("Acesso negado1-2: " + ex.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(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());
}
}
metodo que é invocado:
ServerSocket servidor = new ServerSocket(8080);
JOptionPane.showMessageDialog(null, "Estou esperando uma conexão");
conexaoCliente = servidor.accept();
list.add(conexaoCliente);
JOptionPane.showMessageDialog(null, "Estou conectato");
System.out.println(conexaoCliente);
System.out.println("O cliente" + conexaoCliente.getInetAddress().getHostAddress()+" esta conectado");
}catch(IOException e){
System.err.println("Erro na conexão: " + e.getMessage());
}
}
Erro gerado:
Exception in thread “main” java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at funciona.ClassLoad.carregaComunicação(ClassLoad.java:143)
at funciona.ClassLoad.main(ClassLoad.java:87)
C:\Users\lucas.oliveira\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1