当前位置: 首页 > 知识库问答 >
问题:

Spring Boot测试malformedurlException:未知协议:classpath

萧英睿
2023-03-14

如果在Spring Boot应用程序中使用java.net.url,并使用classpath协议,它将按预期工作,因为Spring Boot程序注册URLStreamHandlerFactory。例如新URL(“classpath:somefile.whather”)

复制的步骤:

1)创建Spring Boot Starter项目(例如。仅使用初学者Web)。

2)在src/main/resources中添加test.json文件

@Component
public class MyComponent {
    public MyComponent() throws MalformedURLException {
        URL testJson = new URL("classpath: test.json");
        System.out.println(testJson);
    }
}
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringUrlTestApplicationTests {

    @Test
    public void contextLoads() {
    }

}

在实际用例中,我不能更改新URL(“classpath:test.json”),因为它来自第三方库。

尝试将test.json复制到src/test/resources中,以测试错误是否是由缺少资源引起的-没有成功。

共有1个答案

赫连飞沉
2023-03-14

最短、最简单的方法是在测试执行前创建简单的方法,即为类路径协议创建和注册处理程序。

    @BeforeClass
    public static void init() {
        org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.getInstance();
    }

我刚检查过,效果很好。这种方法也在spring-boot应用程序内部使用

 类似资料:
  • 我正在编写一个名为ZAP的Java应用程序的扩展。该扩展是一个fat/uber jar,内联了Equinox包()。另外的bundle也包含在这个jar中,在bundles的子目录中。正如《如何嵌入OSGi》中所述,正在启动OSGi框架。 我正试图让Felix GoGo shell按照Eclipse“控制台外壳”文档中概述的步骤工作。它指定了以下所需的捆绑包: 除了Equinox/。由于Equin

  • 我有一个脚本,它使用的Facebook向

  • 我在中添加了来自Web页面的所有链接,然后逐一点击所有URL。 代码按预期工作(它在浏览器中启动URL),因为第一个链接稍后抛出错误: Windows-7 Java-1.8.1

  • 嗨,我的pax检查失败,错误为Unknown Protocol:wrap 当我将karaf版本从3.03更改为4.04时,这个错误就开始出现了

  • VS Code 把 NodeJS 和 Mono 的调试功能抽象出来了,大家就可以通过自定义 Debugger Adapter 和 VSCode Debug Protocol 从而实现自己的调试器。现在 VS Code 插件中心 里,Go、PHP、Python、Ruby 的 Debugger 做的都比较成熟了 参见 https://code.visualstudio.com/Docs/extensi

  • 在底层,Chrome 开发者工具是用 HTML,JavaScript 和 CSS 写的 Web 应用程序。在 Javascript 运行时,它提供一个特殊的绑定,这允许它与 chrome 网页进行交互并且容许装载它们。交互协议包括被发送到页面的命令,和该页面生成的事件。尽管 Chrome 开发者工具是该协议的主要客户,其中包括远程调试(remote debugging),但有很多办法可以让第三方能