Java - ClassLoader desde Plugin de Eclipse

   
Vista:

ClassLoader desde Plugin de Eclipse

Publicado por Rodrigo Lopez (9 intervenciones) el 03/04/2008 19:08:32
HOla a Todos

Bueno el problema es el siguiente necesito cargar una clase de cualquier ubicacion
del sistema operativo lo cual ya lo hace cuando creo un java project
con el siguiente codigo

String pathClazzes = "file:/"+ "C:/suma/";
URL url;
try {
url = new URL(pathClazzes);

URL[] urls = new URL[1];
urls[0] = url;
ClassLoader classLoader = new URLClassLoader(urls);
Class class1 = classLoader.loadClass("test.SumaStub");
System.out.println(class1.getName());
System.out.println(class1.getMethods().length);
for (Method method : class1.getMethods()) {
System.out.println(method.getName());

}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Carga la clase Y muestra el total de metodos y nombre de cada uno de los metodos de la clase
Aqui viene el problema cuando lo quiero ejecutar este framento de codigo en un plugin Project

Muestra el siguiente error
java.lang.reflect.InvocationTargetException
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:383)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:313)
at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:934)
at org.apache.axis2.tool.codegen.eclipse.CodeGenWizard.doFinishWSDL2Java(CodeGenWizard.java:406)
at org.apache.axis2.tool.codegen.eclipse.CodeGenWizard.performFinish(CodeGenWizard.java:186)
at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:742)
at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:373)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:616)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
at org.eclipse.jface.window.Window.open(Window.java:796)
at org.eclipse.ui.actions.NewWizardAction.run(NewWizardAction.java:182)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:545)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:490)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:402)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:153)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:504)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
at org.eclipse.equinox.launcher.Main.main(Main.java:1144)
Caused by: java.lang.NoClassDefFoundError: org/apache/axis2/client/Stub
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at gwork.ws.api.model.core.GworkDelegate.generateDelegate(GworkDelegate.java:54)
at org.apache.axis2.tool.codegen.eclipse.CodeGenWizard$1.execute(CodeGenWizard.java:367)
at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:101)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1797)
at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:113)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:369)
... 44 more

Gracias por la atencion prestada
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ClassLoader desde Plugin de Eclipse

Publicado por mario (622 intervenciones) el 03/04/2008 21:13:44
Te faltan clases en la traza tienes esto:

algun jar para axis2

Caused by: java.lang.NoClassDefFoundError: org/apache/axis2/client/Stub

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ClassLoader desde Plugin de Eclipse

Publicado por Rodrigo Lopez (9 intervenciones) el 03/04/2008 21:17:44
Pero mi pregunta es Yo lo pruebo desde un java project y funciona
Que debe hacer para que funcione desde el plugin ?

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ClassLoader desde Plugin de Eclipse

Publicado por mario (622 intervenciones) el 03/04/2008 21:32:50
Segun la traza no estan cargas esas clases si estan disponibles los jars para el plugin que estas desarrollando?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ClassLoader desde Plugin de Eclipse

Publicado por Rodrigo Lopez (9 intervenciones) el 03/04/2008 21:37:59
Si debe agregarlo pero al classpath en tiempo de ejecucion ese .jar axis2

como lo puedo montar al classpath en tiempo de ejecucion ;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar