我试图解析服务器返回给gatling的json响应.
我对服务器的回复是:
SessionAttribute(
Session(
GetServices,
3491823964710285818-0,
Map(
gatling.http.cache.etagStore -> Map(https://api.xyz.com/services -> ),
gatling.http.cache.lastModifiedStore -> Map(https://api.xyz.com/services -> ),
myresponse -> {
"created":"2014-12-16T22:06:59.149+0000",
"id":"x8utwb2unq8uey23vpj64t65",
"name":"myservice",
"updated":"2014-12-16T22:06:59.149+0000",
"version":null
}),
1418767654142,622,
OK,List(),<function1>),id)
Run Code Online (Sandbox Code Playgroud)
我在我的脚本中这样做:
val scn = scenario("GetServices")
.exec(http("Get all Services")
.post("/services")
.body(StringBody("""{ "name": "myservice" }""")).asJSON
.headers(sentHeaders)
.check(jsonPath("$")
.saveAs("myresponse"))
).exec(session => {
println(session.get("id"))
session
})
Run Code Online (Sandbox Code Playgroud)
它仍在打印整个响应.我怎样才能检索到的id是"x8utwb2unq8uey23vpj64t65"什么?
When i run the jsp page i am getting the following error.
Web sever : Tomcat 6.0 , using Struts
java.lang.ClassNotFoundException: javax.servlet.jsp.SkipPageException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128)
at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
at org.apache.jsp.jsp.login.Main_005ffit_jsp._jspService(Main_005ffit_jsp.java:2846)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) …Run Code Online (Sandbox Code Playgroud) 我正在阅读Scala中的函数式编程,以下是它为使用Option类型而不是检查get for 提供的两个优点null:
它允许错误无声地传播 - 调用者可能忘记检查这种情况,并且不会被编译器警告,这可能导致后续代码无法正常工作.通常,在代码之后很久才会检测到错误.
除了容易出错之外,它还会在呼叫站点产生大量样板代码,并使用显式if语句来检查调用者是否收到了"真实"结果.如果碰巧调用多个函数,则会放大此样板文件,每个函数都使用必须以某种方式检查和聚合的错误代码.
对于第2点.虽然不必检查null仍然必须检查Option类型是否包含Some或None.该if检查不除,它只是在做更明确的,而不是一个类型的是null它可能不包含值.这是正确的解释吗?
虽然我引用了Scala一书Option,但Java 8中也提供了类型,因此我认为在Java中也是有效的.
我已经给出了文本字段表达式new.java.util.Date()和模式MMMMM dd, yyyy作为上述格式.
日期必须显示如下:jan 13, 2012但它以其他格式显示:Fri Jan 13 08:30:12 IST 2012.
那么如何以上述格式打印日期.在预览中有一件事如前所述正确显示日期,但在我的应用程序中它显示Fri Jan 13 08:30:12 IST 2012格式.有没有办法让它正常工作?
我找到了一些预定义的fileNamePatterns TimeBasedRollingPolicy。
这是每分钟都会做的一个。
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logfile.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logfile.%d{yyyy-MM-dd_HH-mm}.log</fileNamePattern>
</rollingPolicy>
</appender>
Run Code Online (Sandbox Code Playgroud)
有谁知道我如何每 x 天执行此操作?
我可以延长吗RollingFileAppender?我正在 Scala 中做这个。
我正在尝试使用动作合成将假用户添加到Session.
def GuestAction(f: Request[AnyContent] => Result): Action[AnyContent] = {
Action { request =>
var myUser = searchUser(request.session)
if ( myUser == null ) {
myUser = newUser()
}
f(request).withSession("user" -> myUser)
}
}
Run Code Online (Sandbox Code Playgroud)
在我的控制器中有
def action1 = GuestAction { implicit request =>
// My code
Ok()
}
def action2 = GuestAction { implicit request =>
val user = request.session.get("user").get
// My code
Ok()
}
Run Code Online (Sandbox Code Playgroud)
当我打开Chrome浏览器并浏览到指向"action1"的路线然后浏览到指向"action2"的路线时,一切正常:我有一个新用户并且它已附加到会话中.相反,当我打开Chrome并首先浏览到指向"action2"的路径时,我收到错误,因为我的"request.session"为空,这很明显:使用.withSession()会话附加到Result,而不是来电请求.因此,为了使这项工作,我需要将会话密钥/值对附加到传入请求 - 就像它可能的那样FakeRequest.withSession(),但是没有这样的方法Request.
你有什么建议来解决这个问题?
最近在使用 arrayList 时,我发现了一个奇怪的问题。我想在数组列表中保留 2 个元素,并希望在元素 0 中保留 object1,在 element1 中保留 object2。
我在循环中决定这个。
当它碰巧添加第一个元素时,它会抛出 indexOutofBounds。根据java doc,因为索引大于大小,所以这样做。
public static void main(String[] args)
{
ArrayList<String> list = new ArrayList<String>();
list.add(1,"SECONDITEM"); // throwing due to size is not set
list.add(0,"FIRSTITEM");
int postn=0;
for(String item:list){
System.out.println("Position "+postn+" :"+item);
postn++;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试将其他项目设置为 0,1 元素中的占位符并尝试做同样的事情
public static void main(String[] args)
{
ArrayList<String> list = new ArrayList<String>();
list.add(0,"x");
list.add(1,"y");
list.add(1,"SECONDITEM");
list.add(0,"FIRSTITEM");
int postn=0;
for(String item:list){
System.out.println("Position "+postn+" :"+item);
postn++;
}
}
Output:
Position 0 :FIRSTITEM
Position 1 …Run Code Online (Sandbox Code Playgroud)