我试图显示一个类的所有方法名称。 此代码在发送的os 6中运行良好,
private static void extractClassMethods(Class classObject) {
// read the methods
Method[] methods = classObject.getMethods();
// no methods
if (methods == null) {
return;
}
// print method path
for (Method method : methods) {
System.out.println(method.getName()) ;
}
}
查找完整的例外日志,
"螺纹-24&#34 ;: 等待锁定监视器0x00007fee807b66b8(对象0x00000007e060e490,一个org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader), 这是由" Thread-15" "螺纹-15&#34 ;: 等待锁定监视器0x00007feebc0101c8(对象0x00000007e12564e8,一个java.lang.Object), 这是由" Start Level Event Dispatcher" "开始级别事件调度员": 等待锁定监视器0x00007fee807b66b8(对象0x00000007e060e490,一个org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader), 由" Thread-15"
持有"螺纹-24&#34 ;: at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:424) - 等待锁定< 0x00000007e060e490> (a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader) 在org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:413) 在org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:189) 在org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:340) 在org.eclipse.osgi.framework.internal.core.SingleSourcePackage.loadClass(SingleSourcePackage.java:37) 在org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:405) 在org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:369) 在org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:357) 在org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2531) at java.lang.Class.privateGetPublicMethods(Class.java:2651) at java.lang.Class.getMethods(Class.java:1467) at com.something.extractClassMethods(MethodAccessManager.java:102) 在java.lang.Thread.run(Thread.java:744) "螺纹-15&#34 ;: at com.eclipsesource.jaxrs.publisher.internal.JAXRSConnector.addResource(JAXRSConnector.java:110) - 等待锁定< 0x00000007e12564e8> (一个java.lang.Object) at com.eclipsesource.jaxrs.publisher.internal.ResourceTracker.delegateAddService(ResourceTracker.java:45) at com.eclipsesource.jaxrs.publisher.internal.ResourceTracker.addingService(ResourceTracker.java:39) 在org.osgi.util.tracker.ServiceTracker $ Tracked.trackAdding(ServiceTracker.java:1064) 在org.osgi.util.tracker.ServiceTracker $ Tracked.track(ServiceTracker.java:1042) 在org.osgi.util.tracker.ServiceTracker $ Tracked.serviceChanged(ServiceTracker.java:975) 在org.eclipse.osgi.framework.internal.core.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:94) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:1224) 在org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:195) 在org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:141) 在org.eclipse.osgi.framework.internal.core.Framework.publishServiceEventPrivileged(Framework.java:1603) 在org.eclipse.osgi.framework.internal.core.Framework.publishServiceEvent(Framework.java:1578) 在org.eclipse.osgi.framework.internal.core.ServiceRegistrationImpl。(ServiceRegistrationImpl.java:103) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl.createServiceRegistration(BundleContextImpl.java:657) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:609) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:675) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl $ 2.run(BundleContextImpl.java:999) at java.security.AccessController.doPrivileged(Native Method) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:993) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:974) 在org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346) 在org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:260) 在org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:400) 在org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:111) 在org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:417) 在org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:189) 在org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:340) 在org.eclipse.osgi.framework.internal.core.SingleSourcePackage.loadClass(SingleSourcePackage.java:37) 在org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:405) 在org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:369) 在org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:357) 在org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl $ 2.run(BundleContextImpl.java:999) at java.security.AccessController.doPrivileged(Native Method) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:993) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:974) 在org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346) 在org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:260) 在org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:400) 在org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:111) 在org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:417) 在org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:189) 在org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:340) 在org.eclipse.osgi.framework.internal.core.SingleSourcePackage.loadClass(SingleSourcePackage.java:37) 在org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:405) 在org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:369) 在org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:357) 在org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2531) at java.lang.Class.privateGetPublicMethods(Class.java:2651) at java.lang.Class.getMethods(Class.java:1467) 在com.something.extractClassMethods(MethodAccessManager.java:102 在java.lang.Thread.run(Thread.java:744) "开始级别事件调度员": at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2531) at java.lang.Class.getDeclaredMethods(Class.java:1855) 在org.glassfish.jersey.server.model.IntrospectionModeller $ 2.run(IntrospectionModeller.java:236) at java.security.AccessController.doPrivileged(Native Method) at org.glassfish.jersey.server.model.IntrospectionModeller.getAllDeclaredMethods(IntrospectionModeller.java:230) at org.glassfish.jersey.server.model.IntrospectionModeller.checkForNonPublicMethodIssues(IntrospectionModeller.java:170) 在org.glassfish.jersey.server.model.IntrospectionModeller.doCreateResourceBuilder(IntrospectionModeller.java:118) at org.glassfish.jersey.server.model.IntrospectionModeller.access $ 000(IntrospectionModeller.java:80) 在org.glassfish.jersey.server.model.IntrospectionModeller $ 1.call(IntrospectionModeller.java:111) 在org.glassfish.jersey.server.model.IntrospectionModeller $ 1.call(IntrospectionModeller.java:108) 在org.glassfish.jersey.internal.Errors.process(Errors.java:315) 在org.glassfish.jersey.internal.Errors.process(Errors.java:297) 在org.glassfish.jersey.internal.Errors.processWithException(Errors.java:255) 在org.glassfish.jersey.server.model.IntrospectionModeller.createResourceBuilder(IntrospectionModeller.java:108) 在org.glassfish.jersey.server.model.Resource.from(Resource.java:744) 在org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:411) 在org.glassfish.jersey.server.ApplicationHandler.access $ 500(ApplicationHandler.java:163) 在org.glassfish.jersey.server.ApplicationHandler $ 3.run(ApplicationHandler.java:323) 在org.glassfish.jersey.internal.Errors $ 2.call(Errors.java:289) 在org.glassfish.jersey.internal.Errors $ 2.call(Errors.java:286) 在org.glassfish.jersey.internal.Errors.process(Errors.java:315) 在org.glassfish.jersey.internal.Errors.process(Errors.java:297) 在org.glassfish.jersey.internal.Errors.processWithException(Errors.java:286) 在org.glassfish.jersey.server.ApplicationHandler。(ApplicationHandler.java:320) 在org.glassfish.jersey.server.ApplicationHandler。(ApplicationHandler.java:285) 在org.glassfish.jersey.servlet.WebComponent。(WebComponent.java:310) 在org.glassfish.jersey.servlet.ServletContainer.reload(ServletContainer.java:578) at com.eclipsesource.jaxrs.publisher.internal.JerseyContext.addResource(JerseyContext.java:71) at com.eclipsesource.jaxrs.publisher.internal.JAXRSConnector.registerResource(JAXRSConnector.java:140) at com.eclipsesource.jaxrs.publisher.internal.JAXRSConnector.registerResource(JAXRSConnector.java:122) at com.eclipsesource.jaxrs.publisher.internal.JAXRSConnector.doAddResource(JAXRSConnector.java:116) at com.eclipsesource.jaxrs.publisher.internal.JAXRSConnector.addResource(JAXRSConnector.java:110) - 已锁定< 0x00000007e12564e8> (一个java.lang.Object) at com.eclipsesource.jaxrs.publisher.internal.ResourceTracker.delegateAddService(ResourceTracker.java:45) at com.eclipsesource.jaxrs.publisher.internal.ResourceTracker.addingService(ResourceTracker.java:39) 在org.osgi.util.tracker.ServiceTracker $ Tracked.trackAdding(ServiceTracker.java:1064) 在org.osgi.util.tracker.ServiceTracker $ Tracked.trackInitialServices(ServiceTracker.java:926) 在org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:330) - 已锁定< 0x00000007e1256ab8> (com.eclipsesource.jaxrs.publisher.internal.ResourceTracker) 在org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:274) at com.eclipsesource.jaxrs.publisher.internal.Activator.openAllServiceTracker(Activator.java:76) at com.eclipsesource.jaxrs.publisher.internal.Activator.start(Activator.java:50) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl $ 2.run(BundleContextImpl.java:999) at java.security.AccessController.doPrivileged(Native Method) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:993) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:974) 在org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346) 在org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:260) 在org.eclipse.update.internal.configurator.ConfigurationActivator.installBundles(ConfigurationActivator.java:216) 在org.eclipse.update.internal.configurator.ConfigurationActivator.start(ConfigurationActivator.java:80) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl $ 2.run(BundleContextImpl.java:999) at java.security.AccessController.doPrivileged(Native Method) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:993) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:974) 在org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346) 在org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:350) 在org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1118) 在org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:631) 在org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:505) 在org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:279) - 已锁定< 0x00000007e40c67c0> (一个java.lang.Object) 在org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:465) 在org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:195) 在org.eclipse.osgi.framework.eventmgr.EventManager $ EventThread.run(EventManager.java:297)
发现1死锁。
答案 0 :(得分:0)
你的代码很好 从org.eclipse.osgi.framework开始的异常堆栈还有其他问题 你的代码在我身边工作得很好。