2016-12-27 62 views
2

我想在tomcat中加载外部属性文件在spring启动时它按照预期工作,但将其放入lib文件夹中,但我无法使用weblogic服务器加载我把application.properties文件放在lib文件夹中。无法使用weblogic中的springboot加载外部属性文件

代码片段:

 public class ApplicationFilesInitializer extends SpringBootServletInitializer implements WebApplicationInitializer { 

     @Override 
     protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 

      return application.sources(Application.class).properties(getProperties()); 
     } 

     static Properties getProperties() { 
      Properties props = new Properties(); 
props.put("spring.config.location","classpath:{appname}-application.properties"); 
     return props; 
     } 

    } 
+0

很难说没有更多的细节。您是否编写了读取外部属性文件的代码?你能证明吗? –

+0

@StephaneNic​​oll:我添加了代码。 –

+0

所以你把一个名为“appname-application.properties”的文件放在lib目录中,你希望weblogic能看到它?如果我说得对,这可能是Tomcat的一些功能,但你不应该依赖它。确保该文件实际位于服务器的类路径中。 –

回答

2

所以下面是加载外部属性文件的链接。

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

您共享将工作在Tomcat作为lib文件夹下的代码是实际的类路径,以便它,而服务器启动时会加载,但它不会与WebLogic的weblogic的classpath中工作的用户正在访问的文件夹,不是lib文件夹。

你可以尝试将application.properties文件放在用户域文件夹中,它应该可以工作。

在weblogic中找到你的用户域路径,并把应用程序。文件在那里。

以下是你可以找到您的WebLogic用户域路径/ classpath中的代码:

String appDomianPath= System.getProperty("user.dir"); 
System.out.println(appDomianPath); 
+0

@Boot:我如何找到weblogic服务器类路径? –

+1

我已编辑答案。我也同意@Stephane,你不应该在weblogic.Thumb规则中期望像tomcat一样的行为,你的文件应该在你的类路径中。 –

+1

将app.prop文件放入我的类路径(这是lib文件夹的上一级)之后它工作正常。谢谢@S Boot和StephaneNic​​oll清理我的概念并提供快速帮助。 –

相关问题