小编Igo*_*nov的帖子

Backbone.js + Rest.fetch()后没有填充集合

我是Backbone的新手.所以我正在尝试从REST服务中获取数据.

这是我的简单代码:

$(function () {

    var Entity = Backbone.Model.extend({
        url: function() {
            return 'http://localhost:8080/rest/entity/'+this.id;
        }
    });

    var EntityList = Backbone.Collection.extend({       
        model: Entity,
        url: 'http://localhost:8080/rest/entity'
    });

    var entityList = new EntityList();

    entityList.fetch();

});
Run Code Online (Sandbox Code Playgroud)

我的休息服务返回下一个JSON:

[{"id":1387,
  "version":3,
  "entityName":"entity01",
  "entityLabel":"Entity01",
  "entityPluralLabel":"Entity01",
  "attributes":
     [{"id":1425,
       "slot":"D001",
       "version":0,
       "attributeName":"dfield",
       "attributeType":
          {"id":7,
           "description":"Date",
           "attributeType":"date",
           "databaseType":"DATE"
          },
       "options":[],
       "order":2,
       "attributeLabel":"dField",
       "checked":null
      },
      {"id":1424,
       "slot":"S001",
       "version":0,
       "attributeName":"txfield",
       "attributeType":
          {"id":1,
           "description":"Textbox",
           "attributeType":"textbox",
           "databaseType":"STRING"
          },
       "options":[],
       "order":1,
       "attributeLabel":"txField",
       "checked":null
      }
     ]  
 },
 {"id":1426,
  "version":3,
  "entityName":"entity02",
  "entityLabel":"Entity02",
  "entityPluralLabel":"Entity02",
  "attributes":
     [{"id":1464,
       "slot":"D001",
       "version":0, …
Run Code Online (Sandbox Code Playgroud)

rest backbone.js

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

官方Facebook Connect按钮为PNG

是否有官方Facebook Connect按钮,作为图像文件?

网上有很多真正不同的图像,具有不同的大小,不同的样式(甚至颜色),不同的许可证,免费和付费.但我相信应该有一些官方的例子,如PNG图像.

我知道通过使用https://developers.facebook.com/docs/reference/plugins/login/我可以生成HTML并制作屏幕截图,但似乎它太过于hacky,我只是错过了正确的页面.是吗?

品牌权限中心没有"连接"按钮

facebook

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

如何擦除ElasticSearch索引?

我的单元/集成测试包括搜索功能的测试.

我的想法是在每次测试之前都有空搜索索引.所以,我试图删除setup方法索引中的所有元素(它是Groovy代码):

Client client = searchConnection.client

SearchResponse response = client.prepareSearch("item")
    .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
    .setQuery(termQuery('name', 'test')) //tried also matchAllQuery()
    .setFrom(0).setSize(100).setExplain(false).execute().actionGet()

List<String> ids = response.hits.hits.collect {
    return it.id
}
client.close()

client = searchConnection.client

ids.each {
    DeleteResponse delete = client.prepareDelete("item", "item", it)
        .setOperationThreaded(false)
        .execute().actionGet()
}

client.close()
Run Code Online (Sandbox Code Playgroud)

似乎它正在异步处理所有删除,所以我Thread.sleep(5000)在它之后添加了.如你所见,我试图打开/关闭连接几次 - 它没有帮助.

有时需要更多时间的问题,有时需要更多的时间来删除,有时它无法找到刚刚添加的数据(来自之前的测试)等等.最令人讨厌的是集成测试变得不稳定.把Thread.sleep()它放在任何可能的地方看起来都不是那么好的解决方案.

有没有办法提交最后的更改,或者锁定直到所有数据都被写入?

java testing groovy elasticsearch

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

Groovy - 主要方法放置

这是我的代码:

class cat {}
class dog {
    static void main(String[] args) {}
}
Run Code Online (Sandbox Code Playgroud)

当编译groovy说我没有主要方法.但是当我摆脱猫类时:

class dog {
    static void main(String[] args) {}
}
Run Code Online (Sandbox Code Playgroud)

它的有效期.我想,只要我在任何类中使用main方法代码都是有效的,但我错了.有人解释为什么当main方法驻留在其中一个类中时,我不能拥有多个类吗?

java groovy class object

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

Google文档:在纵向文档上制作一个或多个横向页面

我正在撰写关于谷歌文档的文档.我有一个大表添加到我的文档,我想知道,有没有办法在纵向文档上制作一个或多个横向页面.我尝试插入分页符并在页面方向后更改,但它无法正常工作.有任何想法吗?谢谢.

google-docs

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

请求参数和PUT方法

我正在尝试通过PUT请求传递请求参数,在基于Grails的应用程序.

我正在使用以下客户端代码发出请求:

$.ajax({
    url: 'api/controllerName/anId',
    type: 'PUT',
    data: $('form').serialize()
})
Run Code Online (Sandbox Code Playgroud)

使用以下映射:

"/api/$controller/$id?" {
    action = [ GET: "read", POST: "create", PUT: "update", DELETE: "delete"]
}
Run Code Online (Sandbox Code Playgroud)

但我的控制器的动作收到空的参数列表,只有id值.我试着将内容添加到日志中并仅查看:

[id:anId, action:[GET:read, POST:create, PUT:update, DELETE:delete], controller:controllerName]
Run Code Online (Sandbox Code Playgroud)

request.getParameterNames()返回空的值列表.

正如我在FireBug中看到的那样,请求包含此参数,并将Content-Type设置为 application/x-www-form-urlencoded; charset=UTF-8

如果我正在使用GET/POST方法 - 一切都按预期工作,我可以获得所有传递的参数.

我怎样才能访问传递的参数?

更新:我刚认为PUT意味着将数据作为JSON/XML传递到正文中.顺便说一句,这个问题仍然是实际的,以防万一

java rest grails http

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

Spring - ModelAttribute和参数名称

我如何配置Model/Command类绑定到特定的请求参数?

例如,我有以下方法:

@RequestMappint("/success")
ModelAndView success(@ModelAttribute SomeCommand command) {
   // process
}
Run Code Online (Sandbox Code Playgroud)

和命令:

class SomeCommand {
   String title
}
Run Code Online (Sandbox Code Playgroud)

/success?title=test当请求参数名称等于命令属性名称时,它适用于请求.

但是,如果我需要映射一些不同的名称呢?例如,如果请求如下:/success?sk_title=test.

我如何将请求参数映射sk_titletitle我的命令字段?

这个命令有一堆参数,并且由几种不同的方法使用(它是与其他遗留系统的集成),因此为每个RequestMapped方法将所有这些参数作为@RequestParam获取是很多工作并且需要太多的复制/粘贴工作,这带来了很多错误和不受支持的代码.

无法控制输入参数名称,它有非常奇怪的名称,如'sk_yt_saf_amount',这就是为什么我试图将它绑定到更友好的属性名称.

PS我在那里使用单词'command'作为输入数据,以区别于Model和ModelAndView概念.

java spring

8
推荐指数
1
解决办法
4028
查看次数

Elasticsearch服务器发现配置

我安装了ElasticSearch服务器,我正在运行:

$ ./elasticsearch -f
 {0.18.2}[11698]: initializing ...
 loaded [], sites []
 {0.18.2}[11698]: initialized
 {0.18.2}[11698]: starting ...
 bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/192.168.1.106:9300]}
 new_master [Stingray][ocw4qPdmSfWuD9pUxHoN1Q][inet[/192.168.1.106:9300]], reason: zen-disco-join (elected_as_master)
 elasticsearch/ocw4qPdmSfWuD9pUxHoN1Q
 recovered [0] indices into cluster_state
 bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/192.168.1.106:9200]}
 {0.18.2}[11698]: started
Run Code Online (Sandbox Code Playgroud)

如何配置Java客户端连接到此服务器?我刚才:

node.client=true
Run Code Online (Sandbox Code Playgroud)

但是,在尝试连接后我收到了:

org.elasticsearch.discovery.MasterNotDiscoveredException: 
    at org.elasticsearch.action.support.master.TransportMasterNodeOperationAction$3.onTimeout(TransportMasterNodeOperationAction.java:162)
Run Code Online (Sandbox Code Playgroud)

如果我将java客户端配置为:

node.data=false
Run Code Online (Sandbox Code Playgroud)

我得到以下日志:

INFO main node:internalInfo:93 - [Stark, Tony] {0.18.2}[13008]: starting ...
INFO main transport:internalInfo:93 - [Stark, Tony] bound_address {inet[/0:0:0:0:0:0:0:0:9301]}, publish_address {inet[/192.168.1.106:9301]}
INFO elasticsearch[Stark, Tony]clusterService#updateTask-pool-13-thread-1 service:internalInfo:93 - [Stark, Tony] new_master [Stark, Tony][WkNn96hgTkWXRnsR0EOZjA][inet[/192.168.1.106:9301]]{data=false}, reason: zen-disco-join (elected_as_master)
Run Code Online (Sandbox Code Playgroud)

据我所知,这意味着这个新节点(应该是客户端节点)使自己成为一个新的主节点.而且我没有记录它已被发现并连接到任何其他节点.

服务器和客户端都在同一台机器上启动.可以从浏览器访问192.168.1.106:9200. …

java lucene elasticsearch

8
推荐指数
4
解决办法
3万
查看次数

一个webapp的两个单独的Spring上下文

我想使用两个不同的Spring Web上下文,每个都有自己的contextConfig,spring servlet和filter,应该映射到不同的url.我有一个

  1. 标准Grails项目,映射到'/'
  2. 还有一个现有的Spring webapp,我想映射到它 /extra/

我知道我可以将两者都部署到一个Tomcat中,但我正在寻找一种制作一个应用程序(一个war等)的方法,因为它可以简化我们的部署和开发过程.

这个应用程序不需要共享bean或任何东西,应该完全分开.两者都有DispatcherServlet和DispatcherFilter(两者都使用Spring Security,但配置不同)

我如何配置web.xml这样的webapp?

我试图添加新的过滤器:

<filter>
    <filter-name>extraSpringSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    <init-param>
        <param-name>contextAttribute</param-name>
        <param-value>org.springframework.web.servlet.FrameworkServlet.CONTEXT.extraSpring</param-value>
    </init-param>
    <init-param>
        <param-name>targetBeanName</param-name>
        <param-value>extraSecurityFilterBean</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>extraSpringSecurityFilterChain</filter-name>
    <url-pattern>/extra/*</url-pattern>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)

和spring dispatcher servlet:

<servlet>
    <servlet-name>extraSpring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    <init-param>
        <param-name>springConfigLocation</param-name>
        <param-value>classpath:extra-spring-web.xml</param-value>
    </init-param>
</servlet>
Run Code Online (Sandbox Code Playgroud)

哪里:

  • classpath中的两个上下文xml(在exra库jar中):
    • 额外的弹簧-web.xml中
    • extra-spring-security.xml(!!!我应该怎么配置它?)
  • 外弹簧security.xml文件
    • 是相当标准的Spring Security配置
    • 配置了bean extraSecurityFilterBean
    • 从-web上下文中依赖于bean(但不是必须的)

它现在半工作:

  • 正如我从日志中看到的那样,extraSpringservlet成功加载了beanextra-spring-web.xml
  • 但是在访问url之后/extra/我得到了NoSuchBeanDefinitionException:没有定义名为'extraSecurityFilterBean'的bean.

那么,问题是,我如何定义上下文DelegatingFilterProxy?我甚至试图将这些文件添加到主上下文(contextConfigLocation param)中,它不是我正在寻找的,但它不起作用.

我已经看了DelegatingFilterProxy源代码,但我不清楚它是如何加载上下文的.

java grails spring spring-security

8
推荐指数
1
解决办法
3923
查看次数

Spock嘲笑Akka的ActorRef

我试图为一个类进行Spock测试,我需要检查它是否向actor发送消息(比方说statActor).我知道Akka有专门的集成测试库,但似乎对于非常简单的测试来说太过分了.所以,我试过了:

setup:
def myActor = Mock(ActorRef)
myService.statActor = myActor
when:
myService.startStats()
then:
1 * myActor.tell(_)
Run Code Online (Sandbox Code Playgroud)

目标方法如下:

void startStats() {
    Date x = null
    // prepare some data, fill x with required value
    this.statActor.tell(x)
}
Run Code Online (Sandbox Code Playgroud)

我以为Spock会用方法创建mock tell.但在运行此测试后,我得到:

java.lang.ClassCastException: akka.actor.ActorRef$$EnhancerByCGLIB$$80b97938 cannot be cast to akka.actor.ScalaActorRef
    at akka.actor.ActorRef.tell(ActorRef.scala:95)
    at com.example.MyService.startStats(MyService.groovy:32)
Run Code Online (Sandbox Code Playgroud)

为什么要调用真正的ActorRef实现?某种与Scala的不兼容?有没有办法模拟这样的类?

groovy scala akka spock

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