gpt4 book ai didi

java - ServiceRegistry 构造函数在具体类上失败并出现 ClassCastException

转载 作者:行者123 更新时间:2023-12-02 08:31:16 24 4
gpt4 key购买 nike

尝试使用javax.imageio.spi.ServiceRegistryHttpServlet动态注册请求处理器:

    private static final Class PROVIDER_CLASS = IRequestProcessor.class;

private void loadProviders() throws ClassNotFoundException {
_serviceRegistry = new ServiceRegistry(ServiceRegistry.lookupProviders(PROVIDER_CLASS));
}

我得到的错误是:

 java.lang.ClassCastException: org.confused.servlet.GetStandardCodesProcessor
javax.imageio.spi.ServiceRegistry.<init>(ServiceRegistry.java:103
org.confused.servlet.MyServlet.loadProviders(.java:100)
org.confused.servlet.MyServlet.checkProviders(.java:106)
org.confused.servlet.MyServlet.service(.java:44)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

GetStandardCodesProcessor实现IRequestProcessor。调用 ServiceRegistry.lookupProviders() 从文件 META-INF/services/org.confused.servlet.IRequestProcessor 获取类列表。看来我错过了如何从 ServiceRegistry.lookupProviders() 传递迭代器的细微差别。

This page几乎显示了我正在做的事情,尽管将 LookupProviders() 的返回分配给一个无类型的迭代器,该迭代器又被传递给 ServiceRegistry 构造函数。该技术给我带来了同样的错误。

最后,如果重要的话,我正在 Eclipse Gallileo(内部版本 20100218-1602)中运行它。

问候,德鲁

最佳答案

但是,我以前从未使用过这个 SPI 类,来自 API documentationServiceRegistry 的构造函数接受带有类别的 Iterator,而不是提供程序。您可能想使用 registerServiceProviders() 来注册您的提供程序?

关于java - ServiceRegistry 构造函数在具体类上失败并出现 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3303946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com