运行 local vs package maven 时,Springboot 应用程序读取不同的路径
Springboot app read different path when run local vs package maven
因此,我正在开发一个应用程序并尝试在主 class 中使用 @ImportResource 来引用包含 SOAP 服务配置的 xml 文件。当我在我的本地尝试 run/debug 它工作得很好,但是当我使用 maven 包构建 jar 时,它产生 java.io.FileNotFoundException 错误。
这是我的主要内容class
@SpringBootApplication
@ImportResource(locations = "jaxwsconfig.xml")
public class SoapApplication {
public static void main(String[] args) {
SpringApplication.run(SoapApplication.class, args);
}
@Bean
public ServletRegistrationBean servletRegistrationBean() {
return new ServletRegistrationBean(new WSSpringServlet(), "/Services");
}
}
这是我在使用 maven 包时遇到的一些错误
IOException parsing XML document from ServletContext resource [/jaxwsconfig.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/jaxwsconfig.xml]
PS: 我对文件路径有疑问。 Java Spring 不定义绝对路径指的是哪里?就像在这种情况下,当我只定义“jaxwsconfig.xml”时,它指的是哪里?
如果你的jaxwsconfig.xml文件在资源文件夹即src/main/resource下,你可以直接给它,
@ImportResource({"classpath*:applicationContext.xml"})
如果假设文件存在于资源 src/main/resource/foldername 内的文件夹中。你必须给,
@ImportResource(locations = {"classpath:foldername/application-context.xml"})
因此,我正在开发一个应用程序并尝试在主 class 中使用 @ImportResource 来引用包含 SOAP 服务配置的 xml 文件。当我在我的本地尝试 run/debug 它工作得很好,但是当我使用 maven 包构建 jar 时,它产生 java.io.FileNotFoundException 错误。
这是我的主要内容class
@SpringBootApplication
@ImportResource(locations = "jaxwsconfig.xml")
public class SoapApplication {
public static void main(String[] args) {
SpringApplication.run(SoapApplication.class, args);
}
@Bean
public ServletRegistrationBean servletRegistrationBean() {
return new ServletRegistrationBean(new WSSpringServlet(), "/Services");
}
}
这是我在使用 maven 包时遇到的一些错误
IOException parsing XML document from ServletContext resource [/jaxwsconfig.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/jaxwsconfig.xml]
PS: 我对文件路径有疑问。 Java Spring 不定义绝对路径指的是哪里?就像在这种情况下,当我只定义“jaxwsconfig.xml”时,它指的是哪里?
如果你的jaxwsconfig.xml文件在资源文件夹即src/main/resource下,你可以直接给它,
@ImportResource({"classpath*:applicationContext.xml"})
如果假设文件存在于资源 src/main/resource/foldername 内的文件夹中。你必须给,
@ImportResource(locations = {"classpath:foldername/application-context.xml"})