小编hle*_*one的帖子

将JSON子对象属性绑定到Jackson中的Java对象字段

我有一个JSON对象,说:

{
  "foo": {
    "bar": 1
  },
  "baz": 2
}
Run Code Online (Sandbox Code Playgroud)

我想将它绑定到Java对象,如:

@JsonIgnoreProperties(ignoreUnknown = true)
public class Foo {
  private int bar;
  @JsonProperty("baz")
  private int baz;
}
Run Code Online (Sandbox Code Playgroud)

如何将foo.barJSON 的值设置barFooJava对象中的字段?

我试过用这个字段进行注释@JsonProperty("foo.bar"),但它并不像那样工作.

java data-binding json jackson

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

在WAR的WEB-INF/lib文件夹中重命名Maven依赖项

我需要在Maven生成的WAR WEB-INF/lib文件夹中有一个JAR依赖项,x-1.0.final.jar而不是x-1.0.jar它在存储库中的名称.实现这一目标的最佳方法是什么?

在我的POM中,我有:

<dependency>
  <groupId>foo</groupId>
  <artifactId>x</artifactId>
  <version>1.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我希望它出现在WEB-INF/lib文件夹中x-1.0.final.jar.

这是对Maven Central的外部依赖我无法控制.此外,我不想强​​迫所有人使用它将依赖项重新部署到其本地存储库.

是否有我可以使用的Maven插件或者我应该开始编写自己的插件?

java maven-2 maven-3

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

MongoDB 2dsphere索引$ geoWithin性能

我有一个包含GeoJSON Point形式坐标数据的集合,我需要从中查询区域内的10个最新条目.现在有1.000.000个条目,但是会有大约10倍的条目.

我的问题是,当所需区域内有大量条目时,我的查询性能会大幅下降(案例3).我当前拥有的测试数据是随机的,但实际数据不是,因此根据区域的尺寸选择另一个索引(如案例4)是不可能的.

无论区域如何,我应该怎么做才能让它以可预测的方式执行?

1.收集统计:

> db.randomcoordinates.stats()
{
    "ns" : "test.randomcoordinates",
    "count" : 1000000,
    "size" : 224000000,
    "avgObjSize" : 224,
    "storageSize" : 315006976,
    "numExtents" : 15,
    "nindexes" : 3,
    "lastExtentSize" : 84426752,
    "paddingFactor" : 1,
    "systemFlags" : 0,
    "userFlags" : 0,
    "totalIndexSize" : 120416128,
    "indexSizes" : {
        "_id_" : 32458720,
        "position_2dsphere_timestamp_-1" : 55629504,
        "timestamp_-1" : 32327904
    },
    "ok" : 1
}
Run Code Online (Sandbox Code Playgroud)

2.指数:

> db.randomcoordinates.getIndexes()
[
    {
        "v" : 1,
        "key" : {
            "_id" : 1
        },
        "ns" : "test.randomcoordinates",
        "name" …
Run Code Online (Sandbox Code Playgroud)

geospatial mongodb

15
推荐指数
1
解决办法
2982
查看次数

Android上具有透明度的视频

有没有办法让Android播放带透明区域的视频?当我尝试在VideoView中播放包含透明区域的WebM视频时,视图的背景仍为黑色.我希望在透明区域看到父视图的背景,而不是黑色.

到目前为止,我发现的唯一可行的解​​决方案是从视频帧中创建一个可绘制的动画,这不是很有效的内存.

android webm vp8

14
推荐指数
1
解决办法
4254
查看次数

Heroku app无法启动 - "require":没有要加载的文件 - sinatratestapp(LoadError)

我正在尝试使用bamboo-mri-1.9.2堆栈运行我的Heroku应用程序.当然它在Ruby 1.9.2上运行良好.但是在生产时它会在执行启动时崩溃config.ru,如下所示:

require 'sinatratestapp'
run Sinatra::Application
Run Code Online (Sandbox Code Playgroud)

我的.gems档案:

sinatra --version '>= 1.0'
Run Code Online (Sandbox Code Playgroud)

而应用程序本身如下sinatratestapp.rb:

require 'rubygems'
require 'sinatra'

get '/' do
  "Hello from Sinatra on Heroku!"
end
Run Code Online (Sandbox Code Playgroud)

这就是我在项目中的所有内容并尝试在Heroku上运行结果:

<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- sinatratestapp (LoadError)
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from config.ru:1:in `block (3 levels) in <main>'
        ...
-----> Your application is requiring a file that it can't find.

       Most often this is due to missing gems, or it could be that you …
Run Code Online (Sandbox Code Playgroud)

ruby heroku sinatra

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

如何为SBT依赖关系回退Scala版本?

我在我的依赖项中build.sbt没有2.9.0-1我正在使用的Scala的特定构建,而是我应该使用构建2.9.0.如何配置构建,以便它确定不指定每个依赖项的确切版本?例如,subcut没有构建2.9.0-1.

我的一些线路build.sbt:

...
scalaVersion := "2.9.0-1"
libraryDependencies ++= Seq(
  "org.scala-tools" %% "subcut" % "0.8"
)
...
Run Code Online (Sandbox Code Playgroud)

我宁愿避免这个:

  "org.scala-tools" % "subcut_2.9.0" % "0.8"
Run Code Online (Sandbox Code Playgroud)

指定多个版本的东西,它按指定的顺序尝试.

scala sbt

11
推荐指数
1
解决办法
1633
查看次数

使用Spring Security标记库时将异常映射到404页面

将Exception映射到404页面时,Spring Security标记无法从安全上下文中查找身份验证信息.使用"真实"404,可以找到认证.

我的web.xml:

<error-page>
  <exception-type>com.example.NotFoundException</exception-type>
  <location>/app/404</location>
</error-page>

<error-page>
  <error-code>404</error-code>
  <location>/app/404</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)

在JSP上我有:

<sec:authorize access="hasRole('ROLE_USER')">
  <%-- Show navigation links --%>
</sec:authorize>
<sec:authorize access="isAnonymous()">
  <%-- Show login form --%>
</sec:authorize>
Run Code Online (Sandbox Code Playgroud)

/app/404路径被映射到一个控制器,该控制器仅返回图.当我浏览到/foo/some_invalid_idNotFoundException会从控制器抛出最后当它进入JSP无法找到在认证SecurityContext并呈现既不两个选项.相反,当我浏览/something_that_really_doesnt_exist它时,它能够弄清楚我是否登录并呈现正确的HTML.

java spring exception-handling jsp-tags spring-security

9
推荐指数
1
解决办法
3870
查看次数

在Spring 3.1中配置JDO?

我曾经让我的所有DAO扩展了JdoDaoSupport类,现在在Spring 3.1中已经弃用了.我已经创建了自己的AbstractJdoDao类,包装了PersistenceManagerFactory所有DAO并从那里扩展.这是我应该做的方式吗?

另外在JDO文档中,似乎直接实例化PersistenceManagerFactory不是默认选项,而是使用LocalPersistenceManagerFactoryBean包装在一个TransactionAwarePersistenceManagerFactoryProxy.如何正确地实例化这些bean并使它们与Spring的@Transactional注释一起使用.

这是我的应用程序上下文中与持久性相关的部分:

<bean id="persistenceManagerFactoryProxy" class="org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxy">
    <property name="targetPersistenceManagerFactory">
        <bean class="org.springframework.orm.jdo.LocalPersistenceManagerFactoryBean">
            <property name="jdoPropertyMap">
                <props>
                    <prop key="javax.jdo.PersistenceManagerFactoryClass">org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory</prop>
                    <prop key="javax.jdo.option.ConnectionURL">appengine</prop>
                    <prop key="javax.jdo.option.NontransactionalRead">true</prop>
                    <prop key="javax.jdo.option.NontransactionalWrite">false</prop>
                    <prop key="javax.jdo.option.RetainValues">false</prop>
                    <prop key="javax.jdo.option.DetachAllOnCommit">true</prop>
                    <prop key="javax.jdo.option.Multithreaded">true</prop>
                    <prop key="datanucleus.appengine.ignorableMetaDataBehavior">NONE</prop>
                </props>
            </property>
        </bean>
    </property>
    <property name="allowCreate" value="false" />
</bean>

<tx:annotation-driven transaction-manager="transactionManager" />

<bean id="transactionManager" class="org.springframework.orm.jdo.JdoTransactionManager">
    <property name="persistenceManagerFactory" ref="persistenceManagerFactoryProxy" />
</bean>
Run Code Online (Sandbox Code Playgroud)

现在,当我加载访问数据存储的页面时:

org.springframework.transaction.CannotCreateTransactionException: Could not open JDO PersistenceManager for …
Run Code Online (Sandbox Code Playgroud)

java spring jdo

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

之后使用Spring的@RequestBody并读取HttpServletRequest.getInputStream()

我正在使用Spring的@RequestBody注释将我的请求的JSON POST数据映射到一个对象MappingJacksonHttpMessageConverter.然而,之后我想读取String表单中的数据以进行一些额外的身份验证.但是当编组发生时,InputStream进入HttpServletRequest是空的.一旦我@RequestBody从方法中删除参数,POST数据的读取就会String按预期工作.

我是否必须通过@RequestBody手动放弃并以某种方式进行绑定来妥协,还是有更优雅的解决方案?

spring json http spring-mvc jackson

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

如何将IP地址绑定到Spring 3 @ModelAttribute?

这是我的方法的样子:

@RequestMapping(value = "/form", method = RequestMethod.POST)
public String create(@ModelAttribute("foo") @Valid final Foo foo,
        final BindingResult result, final Model model) {
    if (result.hasErrors())
      return form(model);
    fooService.store(foo);
    return "redirect:/foo";
}
Run Code Online (Sandbox Code Playgroud)

所以,我需要将IP地址绑定Foo可能通过调用对象getRemoteAddr()HttpServletRequest.我试图创建CustomEditorFoo,但它似乎并没有被正确的方法.@InitBinder看起来更有希望,但我还没有发现如何.

IP地址在对象上是必需的,而Spring与JSR-303 bean验证相结合将产生验证错误,除非它存在.

解决这个问题最优雅的方法是什么?

java spring spring-mvc

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