我有一个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 的值设置bar为FooJava对象中的字段?
我试过用这个字段进行注释@JsonProperty("foo.bar"),但它并不像那样工作.
我需要在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插件或者我应该开始编写自己的插件?
我有一个包含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) 有没有办法让Android播放带透明区域的视频?当我尝试在VideoView中播放包含透明区域的WebM视频时,视图的背景仍为黑色.我希望在透明区域看到父视图的背景,而不是黑色.
到目前为止,我发现的唯一可行的解决方案是从视频帧中创建一个可绘制的动画,这不是很有效的内存.
我正在尝试使用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) 我在我的依赖项中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)
指定多个版本的东西,它按指定的顺序尝试.
将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_id该NotFoundException会从控制器抛出最后当它进入JSP无法找到在认证SecurityContext并呈现既不两个选项.相反,当我浏览/something_that_really_doesnt_exist它时,它能够弄清楚我是否登录并呈现正确的HTML.
我曾经让我的所有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) 我正在使用Spring的@RequestBody注释将我的请求的JSON POST数据映射到一个对象MappingJacksonHttpMessageConverter.然而,之后我想读取String表单中的数据以进行一些额外的身份验证.但是当编组发生时,InputStream进入HttpServletRequest是空的.一旦我@RequestBody从方法中删除参数,POST数据的读取就会String按预期工作.
我是否必须通过@RequestBody手动放弃并以某种方式进行绑定来妥协,还是有更优雅的解决方案?
这是我的方法的样子:
@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.我试图创建CustomEditor的Foo,但它似乎并没有被正确的方法.@InitBinder看起来更有希望,但我还没有发现如何.
IP地址在对象上是必需的,而Spring与JSR-303 bean验证相结合将产生验证错误,除非它存在.
解决这个问题最优雅的方法是什么?