我尝试为休息控制器配置一个spring异常处理程序,该处理程序能够根据传入的accept头将映射呈现给xml和json.它现在抛出500个servlet异常.
这工作,它拿起home.jsp:
@ExceptionHandler(IllegalArgumentException.class)
public String handleException(final Exception e, final HttpServletRequest request, Writer writer)
{
    return "home";
}
Run Code Online (Sandbox Code Playgroud)
这不起作用:
@ExceptionHandler(IllegalArgumentException.class)
public @ResponseBody Map<String, Object> handleException(final Exception e, final HttpServletRequest request, Writer writer)
{
    final Map<String, Object> map = new HashMap<String, Object>();
    map.put("errorCode", 1234);
    map.put("errorMessage", "Some error message");
    return map;
}
Run Code Online (Sandbox Code Playgroud)
在同一控制器中,通过相应的转换器将响应映射到xml或json:
@RequestMapping(method = RequestMethod.GET, value = "/book/{id}", headers = "Accept=application/json,application/xml")
public @ResponseBody
Book getBook(@PathVariable final String id)
{
    logger.warn("id=" + id);
    return new Book("12345", new Date(), "Sven Haiges");
}
Run Code Online (Sandbox Code Playgroud)
任何人?
也许这应该不起作用,但至少我想了解为什么.我在PUT身体中传递了一个简单的val = somevalue 但是spring发回了一个,400 Bad Request因为它似乎没有识别出val参数.
类似的请求适用于POST.可能是SpringMVC没有将PUT请求体识别为参数源吗?
Content=-Type 在两种情况下都正确设置为application/x-www-form-urlencoded.
spring拒绝调用的方法是:
@RequestMapping(value = "config/{key}", method = RequestMethod.PUT)
@ResponseBody
public void configUpdateCreate(final Model model, @PathVariable final String key, @RequestParam final String val,
        final HttpServletResponse response) throws IOException
{
    //...
}
Run Code Online (Sandbox Code Playgroud)
为了完整性,这里是jquery ajax调用.我看不出有什么不妥.客户端是Firefox 4或Chrome,两者都显示相同的结果.
$.ajax({
         url:url,
         type:'PUT',
         data:'val=' + encodeURIComponent(configValue),
         success: function(data) {...}
       });      
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Android 4.3中添加了蓝牙LE,但似乎没有后台扫描模式,一旦注册通过附近的可用BLE UUID进行通知,它就会唤醒应用程序.
这似乎可以通过iOS7和iBeacons API实现.有没有人知道Android 4.3中是否有这样的功能,或者是否有针对BLE设备进行周期性扫描BLE环境的良好解决方法?
http://developer.android.com/guide/topics/connectivity/bluetooth-le.html
问题很简单,我很惊讶它在搜索时没有立即弹出.
我有一个需要处理的CSV文件,可能非常大.应将每一行传递给处理器,直到处理完所有行.为了读取CSV文件,我将使用OpenCSV,它实质上提供了readNext()方法,它给了我下一行.如果没有更多行可用,则所有处理器都应终止.
为此,我创建了一个非常简单的groovy脚本,定义了一个同步的readNext()方法(因为下一行的读取并不是非常耗时),然后创建了几个读取下一行并处理它的线程.它工作正常,但......
难道不应该有我可以使用的内置解决方案吗?这不是gpars集合处理,因为它总是假设内存中存在一个现有集合.相反,我无法将其全部读入内存并进行处理,这将导致内存异常.
所以....有一个很好的模板用于使用几个工作线程"逐行"处理CSV文件?
之前我使用过ACR 122,它与Android <4.1手机完美配合.我用它来交换P2P SNEP消息......但是由于手机有4.1,当你把手机放在它上面时,读卡器会开始发出哔哔声并闪烁.有没有其他人发现这种不兼容性?有解决方案吗
我想将Websockets与Spring MVC驱动的Web应用程序一起使用.我已经阅读了o jWebsockets和bristleback,但我想知道这是否是最好的集成方式.我相信有人之前已经做过这件事并且有一些有用的提示,有什么不可行的......
感谢名单!
我创建了一个简单的登录屏幕,从底部垂直堆叠登录按钮,用户名和密码编辑框.
当有人单击用户名/密码字段时,虚拟键盘会出现并隐藏其下方的编辑框或按钮.我在另一个应用程序中看到这个,登录按钮始终保持在可见区域....我怎么能实现这一点?
我写了自己的小BLE扫描服务,每隔3-5秒通过一次警报触发.它扫描1.1秒以获得它周围的信标,然后将RSSI信号转换为粗略接近.
我现在正在考虑Radius Networks Android iBeacon服务,但我想知道如何实现相同的后台扫描.
例如:我希望信标scannign在后台启动并运行,并将Intent接收到广播接收器,以决定我对扫描的信标做了什么.
有没有例子,估计这消耗了多少电池?
我在 Spring 3 MVC 应用程序中使用 Jackson JSON。为了不序列化每个日期字段,我创建了一个使用特定日期格式的自定义对象映射器:
@Component("jacksonObjectMapper")
public class CustomObjectMapper extends ObjectMapper
{
    Logger log = Logger.getLogger(CustomObjectMapper.class);
    @PostConstruct
    public void afterProps()
    {
        log.info("PostConstruct... RUNNING");
        //ISO 8601
        getSerializationConfig().setDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SZ"));
    }
    //constructors...
}
Run Code Online (Sandbox Code Playgroud)
这个自定义的 ObjectMapper 被注入到 JsonConverter 中:
<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
    <property name="supportedMediaTypes" value="application/json" />
    <property name="objectMapper" ref="jacksonObjectMapper" /> <!-- defined in CustomObjectMapper -->
</bean>
Run Code Online (Sandbox Code Playgroud)
日志和序列化工作没有例外,但它没有选择日期格式,它简单地序列化为时间戳。@PostConstruct注解起作用了,方法中的日志语句在日志中。
有谁知道为什么会失败?
我有一个本地的lib
/ libs/armeabi文件夹名为libparser.so和一个关联的jar文件.
我更改了gradle构建文件以包含jar文件,这看起来很简单(MYNEWJAR):
dependencies {
    compile files('libs/android-support-v4.jar', 'libs/MYNEWJAR.jar')
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行应用程序时,我认为它无法找到本机库:
E/AndroidRuntime(22569): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load parser from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.hybris.mobile.history-1.apk,libraryPath=/data/app-lib/com.hybris.mobile.history-1]: findLibrary returned null
E/AndroidRuntime(22569):    at java.lang.Runtime.loadLibrary(Runtime.java:365)
E/AndroidRuntime(22569):    at java.lang.System.loadLibrary(System.java:535)
E/AndroidRuntime(22569):    at com.senstation.android.pincast.Pincast.<clinit>(Pincast.java:1299)
E/AndroidRuntime(22569):    ... 17 more
Run Code Online (Sandbox Code Playgroud)
你能帮助我直接获取构建文件,它将包含本机库吗?这似乎是在Eclipse上自动发生的,但我真的想使用android studio.
谢谢!斯文