2010-03-25 6 views
1

저는 이클립스 플러그인을 개발 중입니다. 이 플러그인에서는 최대 절전 프로젝트 인 다른 프로젝트에있는 클래스에서 함수를 실행하기 위해 리플렉션을 사용하고 있습니다. 호출이 사용될 때마다 mymethod.invoke (myobj);리플렉션을 사용하여 함수를 실행할 수 없습니다

은 정확한 문제가 무엇인지,이 예외

java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
    at java.lang.reflect.Method.invoke(Method.java:599) 
    at packagesearch.DummyExecution.execution(DummyExecution.java:154) 
    at packagesearch.HelloWorldAction.run(HelloWorldAction.java:48) 
    at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251) 
    at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229) 
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:583) 
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:500) 
    at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:452) 
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003) 
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422) 
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2384) 
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348) 
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200) 
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113) 
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
    at java.lang.reflect.Method.invoke(Method.java:599) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1236) 
    at org.eclipse.equinox.launcher.Main.main(Main.java:1212) 
Caused by: java.lang.NoClassDefFoundError: org.dom4j.DocumentException 
    at java.lang.J9VMInternals.verifyImpl(Native Method) 
    at java.lang.J9VMInternals.verify(J9VMInternals.java:72) 
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:134) 
    at test.Example.demo1(Example.java:38) 
    ... 36 more 
Caused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:419) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:643) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:345) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:609) 
    ... 40 more 

을주고있다. 내가 로더를 사용하여 클래스를로드했습니다. 도움말

답변

5

정확하게 말하면 클래스 org.dom4j.DocumentException을 찾을 수 없습니다. 대부분 클래스 경로가 틀립니다.

0

영속 엔티티를 나타 내기 위해 프록시 객체를 사용하는 Hibernate와 관련이 있는지 궁금합니다. 본질적으로, 엔티티 x에 대한 클래스 유형을 검사했다면, Hibernate가 당신의 객체를 랩핑하여 어떤 영속성 특정 기능을 추가하기 때문에 x_javassist_1334와 같은 것을 얻을 수 있습니다. 간단한 체크를하고 더 이상 진행하기 전에 메소드를 호출하는 객체의 클래스 이름을 출력합니다.

관련 문제