【问题标题】:How to connect to mongoDB on remote server from Angular-Spring application hosted on some other server如何从托管在其他服务器上的 Angular-Spring 应用程序连接到远程服务器上的 mongoDB
【发布时间】:2017-01-15 12:04:20
【问题描述】:

我的 mongoDB 托管在 X 盒子上,而 Angular-Spring 应用程序托管在 Y 盒子上。 当两者都在本地时,我的应用程序工作正常,但在此服务器级别配置上,我遇到了问题。

HTTP 状态 500 - 请求处理失败;嵌套异常是 org.springframework.dao.DataAccessResourceFailureException:无法 连接到任何服务器;嵌套异常是 com.mongodb.MongoServerSelectionException:无法连接到任何 服务器

类型异常 报告

消息请求处理失败;嵌套的 例外是 org.springframework.dao.DataAccessResourceFailureException:无法 连接到任何服务器;嵌套异常是 com.mongodb.MongoServerSelectionException:无法连接到任何 服务器

描述服务器遇到了一个 阻止它实现这一点的内部错误 请求。

异常 org.springframework.web.util.NestedServletException:请求 处理失败;嵌套异常是 org.springframework.dao.DataAccessResourceFailureException:无法 连接到任何服务器;嵌套异常是 com.mongodb.MongoServerSelectionException:无法连接到任何 服务器 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) javax.servlet.http.HttpServlet.service(HttpServlet.java:624) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316) org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126) org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:122) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:168) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:48) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:120) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:53) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213) org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)

我们已将配置更改为在所有配置中指向 X 框

【问题讨论】:

  • 嗯,我在使用 postgresql 时遇到过类似的情况,尝试将应用程序与数据库连接时出现超时问题,您是否将它们托管在私有服务器上?
  • 它在私有网络中。
  • 可能是 ssl 的问题,您是否尝试通过工具连接到您的数据库?也看看它是否有效
  • 我尝试使用 SimpleMongoDbFactory 访问 mongodb,现在它工作正常,我们正在尝试通过 MongoClient 和 MongoTemplate 都出现上述错误。
  • 那太好了,考虑发布它作为答案

标签: java angularjs mongodb spring-mvc


【解决方案1】:

默认情况下,MongoDB 只绑定到本地接口,它会限制远程连接。因此,要发布您的远程服务器并使其在 localhost 之外可用,您应该使用

更新 mongod.conf
bind_ip = 127.0.0.1,192.168.1.1,<remote_server_ip>,....

【讨论】:

    【解决方案2】:

    错误是 jar 文件的位置。我正在使用 Apache tomcat 并且 jar 应该保留在那里。最初我以为 SimpleMongoDbFactory 解决了我的问题,后来我意识到这是由于 jars。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-20
      • 1970-01-01
      • 2017-07-13
      • 2014-03-17
      • 1970-01-01
      • 2011-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多