小编Jas*_*tes的帖子

在mongodb中使用ISODate进行日期查询似乎不起作用

我似乎无法在MongoDB中使用最基本的日期查询.使用看起来像这样的文档:

{
    "_id" : "foobar/201310",
    "ap" : "foobar",
    "dt" : ISODate("2013-10-01T00:00:00.000Z"),
    "tl" : 375439
}
Run Code Online (Sandbox Code Playgroud)

一个看起来像这样的查询:

{ 
    "dt" : { 
        "$gte" : { 
            "$date" : "2013-10-01T00:00:00.000Z"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我从执行中得到0结果:

db.mycollection.find({
  "dt" : { "$gte" : { "$date" : "2013-10-01T00:00:00.000Z"}}
})
Run Code Online (Sandbox Code Playgroud)

知道为什么这不起作用吗?

作为参考,此查询由Spring的MongoTemplate生成,因此我无法直接控制最终发送到MongoDB的查询.

(PS)

> db.version()
2.4.7
Run Code Online (Sandbox Code Playgroud)

谢谢!

json mongodb bson isodate

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

自 Android 13 起无法启动任意 Activity

我构建了一个小型个人应用程序,它允许我为不同的 URL 指定不同的浏览器。在 Android 13 之前,它运行良好,但在 Android 13 之后的某个时候,它开始出现故障。我怀疑这与应用程序启动任意活动的权限(或缺乏权限)有关,但仔细阅读文档却没有得到任何结果。

该过程的工作原理如下:

我查询所有活动以查找Intent具有 URI 作为其数据属性的活动

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(uri); // uri is some location like 'https://www.google.com'
PackageManager pm = context.getPackageManager();
List<ResolveInfo> allTargets = pm.queryIntentActivities(intent, PackageManager.MATCH_ALL);
Run Code Online (Sandbox Code Playgroud)

allTargets我根据浏览器的名称循环查找我想要的浏览器:

ResolveInfo target = null;
for (ResolveInfo b : allTargets) {
    String appName = b.loadLabel(pm).toString();

    // targetBrowserName will be something like "Chrome"
    if(appName.equalsIgnoreCase(targetBrowserName)) {
        target = b;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用 url 启动此浏览器

ActivityInfo activity = target.activityInfo;

ComponentName name = new ComponentName(activity.applicationInfo.packageName, …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-activity

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

在Spring MVC中混合使用REST和JSP,找不到JSP

我确定这是一个菜鸟问题,我花了大约一小时的时间来搜索stackoverflow以获得答案,但似乎没有人有我的情况所以我们去...

我有一个使用Spring MVC的新webapp.大多数应用程序(99%)都是纯REST,因此它没有这样的"视图",而是简单地将JSON发送回线路,或者发送备用HTTP状态以查找错误等.

例外情况是登录页面需要是一个实际的JSP,但不知何故,我用来映射我的REST控制器的配置让我处于普通JSP映射失败的状态.

这是我得到的:

在我的调度程序servlet配置中,相关部分是:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/pages/"/>
    <property name="suffix" value=".jsp"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

在我试图让它工作的过程中,我还添加了一个映射到"HomeController",它当前只是重定向到我的登录JSP:

<bean name="/" class="com.somepackage.HomeController"/>
Run Code Online (Sandbox Code Playgroud)

现在,在web.xml中我有:

<servlet>
    <servlet-name>spring-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>spring-dispatcher</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/spring-dispatcher-servlet.xml
    </param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

这适用于我的RESTful控制器,如下所示:

@Controller
@RequestMapping(value = "/api/user")
public class BlahBlahController {...
Run Code Online (Sandbox Code Playgroud)

我的"HomeController",看起来像这样:

@Controller
@RequestMapping(value = "/")
public class HomeController extends AbstractController {
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
        return new ModelAndView("login");
    }
}
Run Code Online (Sandbox Code Playgroud)

当我点击"/"url时触发IS,但是我在日志中收到此错误:

WARNING: No mapping found …
Run Code Online (Sandbox Code Playgroud)

mapping rest spring-mvc

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

单元测试中未触发Spring Aspect

好的,我们正在谈论Spring(3.2.0)MVC

我们有一个切入点定义为在"注释"周围触发,如下所示:

@Around("@annotation(MyAnnotation)")
public void someFunction() {

}
Run Code Online (Sandbox Code Playgroud)

然后在控制器中我们有:

@Controller
@Component
@RequestMapping("/somepath")
public class MyController {

    @Autowired
    private MyService service;

    ...

    @MyAnnotation
    @RequestMapping(value = "/myendpoint", method = RequestMethod.POST, produces = "application/json")
    @ResponseBody
    public Object myEndpoint(@RequestBody MyRequestObject requestObject, HttpServletRequest request, HttpServletResponse response) {
        ...
        return service.doSomething(requestObject);
    }         
}
Run Code Online (Sandbox Code Playgroud)

然后我们有一个单元测试,如下所示:

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations = {"../path/to/applicationContext.xml"})
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class})
public class MyControllerTest {

    private MockMvc mockMvc;

    @InjectMocks
    private MyController controller;

    @Mock
    private MyService myService;    

    @Before
    public void setup() {
        MockitoAnnotations.initMocks(this);
        this.mockMvc = MockMvcBuilders.standaloneSetup(controller).build();
    }


    @Test …
Run Code Online (Sandbox Code Playgroud)

aop unit-testing spring-mvc

4
推荐指数
1
解决办法
6271
查看次数

Facebook Android SDK 3.0回调未被取消取消

我正在尝试用Facebook Android SDK v3.0升级现有的应用程序/框架,但我仍然坚持如何使用额外的权限进行身份验证.

问题是如果用户取消,StatusCallback似乎不会触发.如果我Session.openActiveSession在取消时使用常规调用回调触发,但是Session.OpenRequest在新鲜Session对象上使用new 则不会.

这是我的代码:

Session.OpenRequest auth = new Session.OpenRequest(this);

String[] permissions = {"publish_stream", "user_status"};

auth.setPermissions(Arrays.asList(permissions));

auth.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);

auth.setCallback(new Session.StatusCallback() {
    @Override
    public void call(Session session, SessionState state, Exception exception) {
        switch(state) {

            case OPENING:
                System.out.println("OPENING");
                break;              

            case OPENED: // <-- NOT CALLED
                System.out.println("OPENED");
                break;

            case CREATED: // <-- NOT CALLED
                System.out.println("CREATED");
                break;

            case CREATED_TOKEN_LOADED: // <-- NOT CALLED
                System.out.println("CREATED_TOKEN_LOADED");
                break;

            case OPENED_TOKEN_UPDATED: // <-- NOT CALLED
                System.out.println("OPENED_TOKEN_UPDATED");
                break;

            case CLOSED: // <-- …
Run Code Online (Sandbox Code Playgroud)

android facebook

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