Tag: springmvc

如何在Springconfiguration属性中引用OS Env?

我在一个Docker容器中运行一个项目,我想将项目属性(在application.properties文件中设置)设置到OS Env中。 例如, M2_HOME是一个操作系统环境,现在我需要在像m2_home=${M2_HOME}这样的springconfiguration属性中使用它,所以我可以在我的项目中使用m2_home 。 我试图configuration像: <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>classpath*:/resource/application-${profiles.active}.properties</value> </property> <property name="searchSystemEnvironment"> <value>true</value> </property> <property name="ignoreUnresolvablePlaceholders"> <value>true</value> </property> </bean> 但它不起作用。 我能做些什么来实现我的目标?

在Docker容器中运行时,从属性文件实例化Spring Configuration类时出错

当我在Tomcat 8 Docker容器中运行我的webapp时,发生NumberFormatException。 当Spring试图实例化MongoConfig类时,会发生错误,该类注入从类path属性文件中获取的@Values。 属性文件中的属性如下所示: mongodb.host=mongodb mongodb.database=mydatabase mongodb.port=27017 mongodb.username=myusername mongodb.password=mypassword 在MongoConfig文件中,当它到达这个地方时,它会被NumberFormatException抛弃: @Value("${mongodb.port}") private int port; 根据错误,尽pipe事实上属性文件清楚地给出了没有任何其他东西(如IP地址)的端口,但它正在拾取“tcp://172.17.0.2:27017”作为它尝试将端口拉入的input。 它被选中的IP地址是它分配给mongodb容器(一个单独的Docker容器,没有装饰,只是mongodb:最新的–name mongodb,然后在Tomcat容器的运行中链接为mongodb:mongodb命令)。 如果你在运行的Tomcat容器中进行shell操作并查看/ etc / hosts,你会看到mongodb的条目,并且它在Tomcat容器中可以看到。 为什么Spring在获取包含IP和端口的整个tcp地址时,在属性文件中给它自己的端口? 我该如何处理? 更新 – 错误是:“错误创build名为com.mydomain.myproject.config.MongoConfig的bean:通过字段”端口“表示的不满意的依赖项:无法将types[java.lang.String]的值转换为所需的types[int ];嵌套exception是java.lang.NumberFormatException:对于inputstring:“tcp://172.17.0.2:27017”;嵌套exception是org.springframework.beans.TypeMismatchException:无法转换types为[java.lang.String ]为必需的types[int];嵌套的exception是java.lang.NumberFormatException:对于inputstring:“tcp://172.17.0.2:27017”“ 看来mongodb.port正在容器内被覆盖。 将端口号改为99999什么都不做。 更改属性名称为“mylovely.port”然后给了我们一个错误,抱怨该端口超出范围,并显示它是99999.修改它回到27017然后给了我一个正在运行的Web应用程序,没有崩溃。 剩下的问题是,什么压倒这个值,为什么一个名为端口的属性有一个完整的地址? 是不是 – 链接选项不仅在tomcat容器的/ etc / hosts中设置了一个条目,而且还创build了一种名为mongodb的全局variables或属性,不pipe它在什么时候总是返回完整的地址?

Docker中的Spring Boot静态文件夹

在Spring Boot项目中,我必须将默认位置更改为资源文件夹。 我使用这个代码来实现想要的结果: @Bean WebMvcConfigurer configurer () { return new WebMvcConfigurerAdapter() { @Override public void addResourceHandlers (ResourceHandlerRegistry registry) { String location = "file:" + System.getProperty("user.dir") + "/pictures/"; registry.addResourceHandler("/pictures/**"). addResourceLocations(location); super.addResourceHandlers(registry); } }; } 在我的本地机器上翻转作品。 当创buildDocker镜像并运行它时,似乎没问题,但是当我尝试请求目录中的某些文件时,它会引发此exception: 2017-08-23 13:03:48.652 ERROR 8 — [nio-8080-exec-1] oaccC[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception java.net.UnknownHostException: […]

Docker上的Spring Boot Admin在Docker上看不到其他应用程序

我有一个简单的Spring Boot Admin应用程序在Docker上运行。 我的问题是它显示在Docker上运行的其他应用程序脱机。 在别处运行的应用程序显示得很好。 任何人都可以帮助和告诉我如何configuration或添加到应用程序? 提前致谢 编辑:问题是与泊坞窗,其他应用程序运行类似的configuration在线pipe理应用程序,只有docker的人不是 编辑2:错误:{“时间戳”:1506501630423,“状态”:500,“错误”:“内部服务器错误”,“例外”:“com.netflix.zuul.exception.ZuulException”,“消息”:“连接到IP_ADDRESS]失败:连接超时“}