小编And*_*rff的帖子

查找Lat/Long的县名称

我正在尝试找到一个网络服务,这将允许我获得特定Lat/Long的县名(而不是国家/地区).我将在服务器应用程序(可能是Java应用程序)中执行查找.如果我想有一些库,它没有一个web服务,但我想要最新的信息.我已经看了很多支持这个的API,但到目前为止我还没找到一个有效的API.我尝试过像这样的Yahoo API:

http://where.yahooapis.com/geocode?q=39.76144296429947,%20-104.8011589050293

但它没有填充地址信息.我试过一些"旗帜"选项也无济于事.

我也浏览了Googles API,但我读过很多他们没有填充县的地方.

那么有没有人知道任何带Lat/Long并返回与该位置相关联的县的API?如果你有任何例子,这将是伟大的.

我还想知道哪些API允许在商业应用程序中使用.我发现的很多数据都说你不能用数据来赚钱.我可能正在阅读那些错误,但我正在寻找建立一个我可能会收取使用这些数据的服务.所以我需要选择.也许是免费服务,而我正在探索各种选择,并在未来支付服务.

geocoding geolocation latitude-longitude

17
推荐指数
2
解决办法
3万
查看次数

在@HystrixCommand回退方法中获取失败异常

有没有办法在Spring Boot应用程序中HystrixCommand使用@HystrixCommand注释时失败的原因?看起来如果您实现自己的HystrixCommand,您可以访问getFailedExecutionException但是如何在使用注释时访问它?我希望能够根据发生的异常类型在回退方法中执行不同的操作.这可能吗?

我看到一个音符有关HystrixRequestContext.initializeContext(),但HystrixRequestContext不给你访问什么,有没有使用上下文来获取访问例外不同的方式?

spring hystrix spring-cloud

16
推荐指数
2
解决办法
2万
查看次数

使用Jackson处理自定义json中的"无法识别的令牌"异常

我正在尝试使用Jackson json解析器(v2.5.2)来解析一个不是真正的json的自定义json文档,我无法弄清楚如何使它工作.我有一个json文档可能看起来像:

{
    "test": {
        "one":"oneThing",
        "two": nonStandardThing(),
        "three": true
    }
}
Run Code Online (Sandbox Code Playgroud)

我想使用ObjectMapper将其映射到a java.util.Map,我只想nonStandardThing()在我的地图中为键添加为String值two.

当我通过它运行时,ObjectMapper.readValue(json, Map.class)我得到了异常:

com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'nonStandardThing': was expecting 'null', 'true', 'false' or NaN
 at [Source: { "test":{"test1":nonStandardThing(),"test2":"two"}}; line: 1, column: 35]
    at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1487)
    at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:518)
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:2300)
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:2277)
Run Code Online (Sandbox Code Playgroud)

我曾尝试注册a DeserializationProblemHandler,ObjectMapper但在发生此问题时从未调用过.

这是一个示例应用程序,显示了我尝试过的内容:

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.deser.DeserializationProblemHandler;
import java.io.IOException;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;

public class JacksonDeserializerTest { …
Run Code Online (Sandbox Code Playgroud)

java data-binding json jackson

12
推荐指数
1
解决办法
7万
查看次数

仅返回mongo投影中的数组值

有没有办法只返回mongodb投影中的属性值?例如,我有一个文件,其属性值为数组.我希望查询中的返回对象只是数组,而不是property: [ .. ].例:

文献:

db.test.insert({ name: "Andrew",
   attributes: [ { title: "Happy"},
                 { title: "Sad" }
               ]
});
Run Code Online (Sandbox Code Playgroud)

查询:

db.test.find({name: "Andrew"},{attributes:1, "_id":0});
Run Code Online (Sandbox Code Playgroud)

返回:

{ "attributes" : [ { "title" : "Happy" }, { "title" : "Sad" } ] }
Run Code Online (Sandbox Code Playgroud)

我希望它返回数组:

[ { title: "Happy"},
  { title: "Sad" }
]
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?谢谢

mongodb

6
推荐指数
1
解决办法
8680
查看次数

一次将ivy工件发布到多个解析器

我们的主要问题是:我们有两个常春藤存储库,我们希望它们是彼此的镜像.因此,只要我们发布工件,我们就希望工件转到两个存储库.我们以前只有一个存储库,因此我们有许多已经发布到该存储库的现有项目.我们不想进入那么多项目并添加第二个发布目标,所以我们试图看看我们是否可以通过常春藤设置来实现这一目标.

所以我试图找出是否有可能同时将Ivy发布工件发送到多个存储库.我最好的猜测是使用链式解析器发布到,但常春藤似乎只选择链中的第一个解析器然后停止.那么有没有人知道如何在不调用发布两次的情况下完成此任务?

ant ivy

5
推荐指数
1
解决办法
384
查看次数

会话未使用Spring Boot,Session和Redis在会话创建时复制

我正在尝试使用Spring Cloud的Zuul,Eureka和我自己的服务来实现微服务架构.我有多个具有UI和服务的服务,每个服务都可以使用x509安全性对用户进行身份验证.现在我正试图将Zuul放在这些服务面前.由于Zuul无法将客户端证书转发到后端,我认为下一个最好的方法是在Zuul的前门验证用户身份,然后使用Spring Session在后端服务中复制其身份验证状态.我已经按照Dave Syer 的教程进行了操作,它几乎可以工作,但不是第一次请求.这是我的基本设置:

  • Zuul Proxy在它自己的应用程序集中路由到后端服务.是否已启用Spring安全性以执行x509身份验证.成功授权用户.还有@EnableRedisHttpSession的Spring Session
  • 后端服务还启用了弹簧安全性.我已尝试在此处启用/禁用x509,但始终要求用户针对特定端点进行身份验证.还使用Spring Session和@EnableRedisHttpSession.

如果清除所有会话并重新开始并尝试命中代理,则它会使用zuul服务器的证书将请求发送到后端.然后,后端服务根据该用户证书查找用户,并认为用户是服务器,而不是在Zuul代理中经过身份验证的用户.如果您只是刷新页面,那么您突然成为后端的正确用户(在Zuul代理中进行身份验证的用户).我正在检查的方法是在后端控制器中打印出Principal用户.所以在第一次请求时,我看到了服务器用户,在第二次请求时,我看到了真实用户.如果我在后端禁用x509,在第一次请求时,我得到403,然后刷新,它让我进去.

看起来会话没有足够快地复制到后端,所以当用户在前端进行身份验证时,它在Zuul转发请求时没有进入后端.

有没有办法保证会话在第一个请求(即会话创建)上被复制?或者我错过了一步以确保其正常工作?

以下是一些重要的代码段:

Zuul代理:

@SpringBootApplication
@Controller
@EnableAutoConfiguration
@EnableZuulProxy
@EnableRedisHttpSession
public class ZuulEdgeServer {
    public static void main(String[] args) {
        new SpringApplicationBuilder(ZuulEdgeServer.class).web(true).run(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

Zuul配置:

info:
  component: Zuul Server

endpoints:
  restart:
    enabled: true
  shutdown:
    enabled: true
  health:
    sensitive: false

zuul:
  routes:
    service1: /**

logging:
  level:
    ROOT: INFO
#    org.springframework.web: DEBUG
    net.acesinc: DEBUG

security.sessions: ALWAYS
server:
  port: 8443
  ssl:
      key-store: classpath:dev/localhost.jks
      key-store-password: thepassword
      keyStoreType: JKS
      keyAlias: localhost
      clientAuth: want …
Run Code Online (Sandbox Code Playgroud)

spring spring-security spring-session spring-cloud

5
推荐指数
1
解决办法
4665
查看次数

Spring Data MongoDB映射中的强制属性顺序

我有一个Location对象,当它们被持久化为mongodb时我需要强制它们的顺序,但我没有太多的运气搞清楚如何去做.Location类看起来像:

Location {
   float lat;
   float lon;
   County county;
}
Run Code Online (Sandbox Code Playgroud)

当它被持续到mongo时,县总是在拉特和勒恩之前.这是一个问题,因为我试图在其上放置一个geoindex,前两个属性必须是lat/long.

我试过了:

@XmlRootElement(name="location")
@XmlType(propOrder={"latitude", "longitude", "county"})
Location {
   float lat;
   float lon;
   County county;
}
Run Code Online (Sandbox Code Playgroud)

当location对象被序列化为xml到我的客户端,而不是DB.似乎spring数据或某些mongo mapper总是按字母顺序执行操作.

有谁知道如何强制订单属性持久存入mongo?谢谢!

java spring mongodb spring-data

3
推荐指数
1
解决办法
1380
查看次数

如何在子属性上使用$ setIsSubset(或其他set操作)

我遇到的是一个非常简单的问题,我只是想念一些东西,所以希望有人能指出我要去哪里。我正在尝试使用$ setIsSubset操作引用一个包含项列表的子属性,但它告诉我它为null。基本上查询是错误的,但我不明白为什么。这是Mongo shell的输出:

$ mongo setTest
MongoDB shell version: 2.6.3
connecting to: setTest
> db.items.insert({"credentials":{"authorities":["AUTH1"]}});
WriteResult({ "nInserted" : 1 })
> db.items.find();
{ "_id" : ObjectId("53acd0e214c4ee1272550de4"), "credentials" : { "authorities" : [ "AUTH1" ] } }
> var userAuthorities = ["AUTH1","AUTH2","AUTH3"];
> db.items.aggregate([
...     { $redact:
...         {
...            $cond:
...               {
...                  if: { $setIsSubset: ["$credentials.authorities", userAuthorities ] },
...                  then: "$$DESCEND",
...                  else: "$$PRUNE"
...               }
...         }
...      }
... ]);
assert: command failed: {
    "errmsg" : …
Run Code Online (Sandbox Code Playgroud)

mongodb aggregation-framework

2
推荐指数
1
解决办法
1208
查看次数