我是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) 是否有官方Facebook Connect按钮,作为图像文件?
网上有很多真正不同的图像,具有不同的大小,不同的样式(甚至颜色),不同的许可证,免费和付费.但我相信应该有一些官方的例子,如PNG图像.
我知道通过使用https://developers.facebook.com/docs/reference/plugins/login/我可以生成HTML并制作屏幕截图,但似乎它太过于hacky,我只是错过了正确的页面.是吗?
品牌权限中心没有"连接"按钮
我的单元/集成测试包括搜索功能的测试.
我的想法是在每次测试之前都有空搜索索引.所以,我试图删除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()它放在任何可能的地方看起来都不是那么好的解决方案.
有没有办法提交最后的更改,或者锁定直到所有数据都被写入?
这是我的代码:
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方法驻留在其中一个类中时,我不能拥有多个类吗?
我正在撰写关于谷歌文档的文档.我有一个大表添加到我的文档,我想知道,有没有办法在纵向文档上制作一个或多个横向页面.我尝试插入分页符并在页面方向后更改,但它无法正常工作.有任何想法吗?谢谢.
我正在尝试通过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传递到正文中.顺便说一句,这个问题仍然是实际的,以防万一
我如何配置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_title到title我的命令字段?
这个命令有一堆参数,并且由几种不同的方法使用(它是与其他遗留系统的集成),因此为每个RequestMapped方法将所有这些参数作为@RequestParam获取是很多工作并且需要太多的复制/粘贴工作,这带来了很多错误和不受支持的代码.
我无法控制输入参数名称,它有非常奇怪的名称,如'sk_yt_saf_amount',这就是为什么我试图将它绑定到更友好的属性名称.
PS我在那里使用单词'command'作为输入数据,以区别于Model和ModelAndView概念.
我安装了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. …
我想使用两个不同的Spring Web上下文,每个都有自己的contextConfig,spring servlet和filter,应该映射到不同的url.我有一个
/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)
哪里:
extraSecurityFilterBean它现在半工作:
extraSpringservlet成功加载了beanextra-spring-web.xml/extra/我得到了NoSuchBeanDefinitionException:没有定义名为'extraSecurityFilterBean'的bean.那么,问题是,我如何定义上下文DelegatingFilterProxy?我甚至试图将这些文件添加到主上下文(contextConfigLocation param)中,它不是我正在寻找的,但它不起作用.
我已经看了DelegatingFilterProxy源代码,但我不清楚它是如何加载上下文的.
我试图为一个类进行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的不兼容?有没有办法模拟这样的类?