首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java -注册自定义URL协议处理程序

Java -注册自定义URL协议处理程序
EN

Stack Overflow用户
提问于 2011-06-08 19:54:18
回答 2查看 19.3K关注 0票数 17

我尝试为类路径协议注册一个自定义的URL处理程序,如another thread中所述。代码如下:

package com.mycompany;

import org.junit.Test;
import java.net.MalformedURLException;
import java.net.URL;
import com.mycompany.protocol.classpath.Handler;

public class ParserTest {
    @Test
    public void testParsing() throws MalformedURLException {      
        System.out.println(System.getProperty("java.protocol.handler.pkgs"));

        //URL url = new URL(null, "classpath://com.mycompany/hello-world.xml", new Handler(ClassLoader.getSystemClassLoader()));
        URL url = new URL("classpath://com.mycompany/hello-world.xml");
    }
}

测试用例具有以下JVM参数:

-Djava.protocol.handler.pkgs=com.mycompany.protocol

System.out.println行正确地输出com.mycompany.protocol,因此设置了该属性。然而,它看起来并没有生效,因为上面的调用将抛出一个java.net.MalformedURLException: unknown protocol: classpath异常。

如果我像注释行一样显式地提供处理程序,那么一切都很好。然而,我宁愿不显式地提供它-它应该是自动完成的。

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-09 00:21:48

我找到了问题所在。我使用的original classpath handler class有一个非默认的构造函数。当然,因为它只有一个非默认构造函数,所以处理程序不能被实例化。我向所有试图调试这个问题的人道歉,我没有看到这个连接。

票数 13
EN

Stack Overflow用户

发布于 2012-03-07 09:51:43

调试此类问题的最简单方法可能是枚举已注册的协议处理程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6278299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档