tomcat 如何在spring Boot 中给予url路径引用本地文件

h6my8fg2  于 2022-11-13  发布在  Spring
关注(0)|答案(2)|浏览(125)

我尝试在Sping Boot 应用程序中使用WSDL文件,WSDL文件被放置到src/main/resource/wsdl/file.wsdl中。

  • 项目结构:*

  • 密码:*
static {
   URL url = null;
   try {            
      url = new URL("file:///" + System.getProperty("user.dir") + "/src/main/resources/wsdl/outbound.wsdl");
   } catch(IOException e) { 
      java.util.logging.Logger
            .getLogger(OutboundService.class.getName())
            .log(java.util.logging.Level.INFO,
                 "Can not initialize the default wsdl from {0}", 
                 "file:/D:/ERPLOGIC/ERPProjects/JAVA/mavenproject/eclipse-workspace/topconpoc/src/main/resources/wsdl/outbound.wsdl");
   }
   WSDL_LOCATION = url;
}

它在本地可以正常工作,但在AWS服务器中作为war文件部署时,它就无法正常工作。
在Sping Boot 应用程序中,正确的路径是什么?

ht4b089n

ht4b089n1#

试试这个

URL url = Thread.currentThread().getContextClassLoader().getResource("wsdl/outbound.wsdl");

这个应该可以

iugsix8n

iugsix8n2#

该文件位于Java资源目录src/main/resource中,在任何情况下都应该从该目录加载。部署时无法正确加载的原因是该文件在打包后不在该位置。使用类从打包的Java应用程序中定位资源文件。这在本地和部署时都应该有效。请确保将ClassFileWhereCodeLives替换为静态代码块所在的类。

url = ClassFileWhereCodeLives.class.getResource("/wsdl/outbound.wsdl")

相关问题