我正在编写SpringMVC3.2单元测试,我导入了类:
import static org.hamcrest.Matchers.containsString;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.*;
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup;
this.mockMvc.perform(post("/maps.do").accept(MediaType.APPLICATION_JSON)
.param("mobileno", "111111")
.param("fromdate", "22-02-2013").param("fromtime", "07:37")
.param("todate", "22-02-2013").param("totime", "08:17")
.andDo(print())
.andExpect(status().isOk())
.andExpect(content().mimeType(MediaType.APPLICATION_JSON)
.andExpect(jsonPath("$.name").value("Lee"));
Run Code Online (Sandbox Code Playgroud)
但是print()和mimeType()仍然没有解决.我一直在寻找,但我找不到正确的答案.
谢谢.
编辑我试过
import static org.springframework.test.web.server.result.MockMvcResultHandlers.print;
Run Code Online (Sandbox Code Playgroud)
但它无法解决.我添加了哪些库和依赖项?上面是拼写错误,下面是正确的.
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
Run Code Online (Sandbox Code Playgroud) 我对Java中的时区感到好奇.我希望从设备获得UTC时间(以毫秒为单位)并发送到服务器.当服务器向用户显示时间时,服务器会将其转换为本地时区.我的系统中的时区是澳大利亚/悉尼(UTC + 11:00),当我测试时区时,我得到了以下结果:
int year = 2014;
int month = 0;
int date = 14;
int hourOfDay = 11;
int minute = 12;
int second = 0;
Calendar c1 = Calendar.getInstance();
c1.set(year, month, date, hourOfDay, minute, second);
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss z");
System.out.println(sdf.format(c1.getTime()));
Calendar c2 = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
c2.set(year, month, date, hourOfDay, minute, second);
System.out.println(sdf.format(c2.getTime()));
Run Code Online (Sandbox Code Playgroud)
输出:
14/01/2014 11:12:00 EST
14/01/2014 22:12:00 EST
Run Code Online (Sandbox Code Playgroud)
我想我可以在13/01/2014 00:12:00为c2,因为UTC时间晚于我的11小时.日历不按我期望的方式工作吗?
非常感谢您的帮助.
添加了z以显示时区.这让我更加困惑,因为Mac说它的时区是(AEDT)澳大利亚东部夏令时,但Java是EST.无论如何,结果仍然不同,因为EST是UTC-5小时.
我刚刚启动了Play框架(2.1)并复制了示例项目(Zentasks)并进行了自定义.我删除了所有以前的视图,控制器和模型类.当我运行应用程序时,我的浏览器显示了进化脚本,我必须运行该脚本.但是我不想创建和执行这个脚本,因为在这个应用程序之前我已经有了我的数据库和表.\此外,脚本中仍有DDL创建已删除的表.我一次又一次删除了evolutions目录,自动生成了文件,我现在工作了.
我想了解它是如何工作的,并知道如何避免这种烦人的事情?
谢谢.
我正在寻找LocationManager以获得定期报告位置的最佳位置.我很好奇LocationManager.requestLocationUpdates方法.如果我使用不同的minTime和minDistance多次调用此方法而不调用removeUpdates,会发生什么?它会添加新请求还是仅更新现有请求?
我试图测试一下,此刻并不容易.您的回答将不胜感激.
我在Android 1.1.0之前使用过Robolectric但在更新之后我再也无法使用它了.我用Google搜索并尝试了一些解决方案,但没有一个有效.这是我目前的设置:
project.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
classpath 'com.github.jcandksolutions.gradle:android-unit-test:2.1.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
Run Code Online (Sandbox Code Playgroud)
app.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "my_package_name"
minSdkVersion 9
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
apply plugin: 'android-unit-test' …
Run Code Online (Sandbox Code Playgroud) 我根据设置定期使用位置管理器,在测试用例中2分钟并尝试使用location.geTime()方法.我没有使用LocationManager.getLastKnownLocation().文件说这是UTC时间,我把它转换成当地时间,如下所示:
Date d = new Date(location.getTime());
SimpleDateFormat sdf = new SimpleDateFormat("yyMMddkkmmss';
sdf.setTimeZone(TimeZone.getTimneZone("UTC");
sdf.format(d);
Run Code Online (Sandbox Code Playgroud)
但是我的日期与我的期望不同.我写的当前时间大约是130516155000(2013-05-16 15:50:00)但是我得到040015130515.我删除了时区并将时区设置为'GMT'并且日期已经确定但是时间差别很大.在真实设备和模拟器是相同的.我已经检查了两者的时区设置,它们是正确的.请告诉我我错过了什么?
谢谢.
编辑:
我添加更多.
Log:
05-16 16:09:30.227: D/location.getTime()(1279): 1368590417000
05-16 16:09:30.237: D/NMEAGPRMCTime(1279): 040017
05-16 16:09:30.247: D/NMEAGPRMCDate(1279): 130515
Run Code Online (Sandbox Code Playgroud)
码:
public static String NMEAGPRMCTime(Date d)
{
SimpleDateFormat sdf = new SimpleDateFormat("kkmmss");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String result = sdf.format(d);
Log.d("NMEAGPRMCTime", result);
return result;
}
public static String NMEAGPRMCDate(Date d)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String result = sdf.format(d);
Log.d("NMEAGPRMCDate", result);
return result;
}
Run Code Online (Sandbox Code Playgroud)
而已.这正是我使用的代码.
我刚刚进入iOS编程,并且正在努力解决很多问题.
我正在尝试实现一小段代码来获取当前位置并在后台将其发送到服务器.当我打电话时beginBackgroundTaskWithExpirationHandler
,我发现backgroundTimeRemaining
财产的回报如此之大.查看代码下面的日志.
if (self.backgroundTask == UIBackgroundTaskInvalid) {
NSLog(@"***** startBackground work");
UIApplication *app = [UIApplication sharedApplication];
self.backgroundTask = [app beginBackgroundTaskWithExpirationHandler:^{
NSLog(@"Background handler called. Not running background tasks anymore.");
[app endBackgroundTask:self.backgroundTask];
self.backgroundTask = UIBackgroundTaskInvalid;
}];
DebugLog(@"====>backgroundTimeRemaining:%.1f seconds", app.backgroundTimeRemaining);
if (timer == nil) {
timer = [NSTimer scheduledTimerWithTimeInterval:10 * 60
target:self
selector: @selector(timerFired:)
userInfo:nil
repeats:YES];
}
}
Run Code Online (Sandbox Code Playgroud)
日志:
2013-11-29 09:23:14.852 JeeneeLocatorService[1666:70b] <JLSViewController.m:(317)> ====>backgroundTimeRemaining:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0 seconds
Run Code Online (Sandbox Code Playgroud)
它看起来不正常,我已经从iOS开发者库网站iOS上读取了大约10分钟,即使我打电话
beginBackgroundTaskWithExpirationHandler
做很长时间的后台任务.
我正在使用XCode5中的iOS7模拟器进行测试.我是否可以将大量时间用于后台工作.你的回答将非常感激.
编辑:得到答案后,我将剩余时间显示代码移动到timerFired:方法.
- (void)timerFired:(NSTimer *)timer {
DebugLog(@"***** Timer fired *****");
UIApplication *app …
Run Code Online (Sandbox Code Playgroud) 我正在浏览Eclipse中自下而上的Webservice.这是我的环境:
Eclipse Helios Java 1.6.0_29 Apache Axis2 Tomcat 6.x
我创建动态Web项目并创建一个简单的服务类.然后我尝试为类创建Webservice,我遇到了一些错误,如下所示:
IWAB0489E将Web服务部署到Axis运行时axis-admin失败时出现{http://schemas.xmlsoap.org/soap/envelope/}Client无法找到端点引用(EPR)的服务http:// localhost:8080/myws /服务/ AdminService
搜索网络,我还没有任何明确的答案.请帮我.
提前致谢.
我有一个问题来处理mysql表的映射对象关系.我有2个表格如下所示:
Device
-----------
deviceId PK
deviceName
ApkInfo
--------
id PK
packageName
appName
deviceId FK
Run Code Online (Sandbox Code Playgroud)
然后这是我的课程:
@Entity
@Table(name="Device")
public class Device implements Serializable {
@Column
@Id
private String deviceId;
@Column
private String deviceName;
//getters and setters
}
@Entity
@Table(name="ApkInfos")
public class ApkInfo implements Serializable {
@Column
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@Column
@Id
private String packageName;
@Column
private String appName;
@Column
@Temporal(TemporalType.TIMSTAMP)
private Date installDate;
@ManyToOne
@JoinColumn(name="deviceId" referencedColumnName="deviceId")
private Device device;
//getters and setters
}
Run Code Online (Sandbox Code Playgroud)
这适用于我,但我想使用复合键,deviceId
并packageName
在ApkInfos …
我有Spring MVC和Data JPA.我正在尝试做我有的映射表.结构如下:
Device
--------------
PK deviceId
deviceName
Setting
--------------
PK deviceId
PK packageName
PK name
value
Run Code Online (Sandbox Code Playgroud)
我有这些表的类:
@Entity
public class DeviceSetting implements Serializable {
@EmbeddedId
private String deviceId
private String deviceName;
@ManyToOne
@JoinColumn(name="deviceId", referencedColumnName="deviceId", insertable=false, updatable=false)
private Device device;
//Setters and Getters
}
@Embeddable
public class DeviceSettingPk implements Serializable {
private String deviceId;
private String packageName;
private String name;
public DeviceSettingPk(){}
public DeviceSettingPk(String deviceId, String packageName, String name) {
super();
this.deviceId = deviceId;
this.packageName = packageName;
this.name = name; …
Run Code Online (Sandbox Code Playgroud) 我在将Android中的JSON字符串转换为对象时遇到问题.以下是JSON结构和Java类:
JSON:
{
"code":"SUCCEED",
"message":"",
"result":{
"ccahUserId": 111,
"ccahUserName":"your_name",
"userFirstName":"your_first_name",
"userLastName":"your_last_name",
//others
}
Run Code Online (Sandbox Code Playgroud)
Java类:
public class Result<T>{
public String code;
public String message;
public T result;
}
public class DeviceSetting
{
public long ccahUserId;
public String ccahUserName;
public String userFirstName;
public String userLastName;
//other members
}
Run Code Online (Sandbox Code Playgroud)
活动:
Gson gson = new Gson();
Result<DeviceSetting> setting = gson.fromJson(result, Result<DeviceSetting>.class);
Run Code Online (Sandbox Code Playgroud)
当我反序列化JSON字符串时,代码和消息字段很好,但结果字段为空.我还不熟悉Gson,所以请帮忙解决这个问题?
提前致谢.
android ×3
jpa ×2
timezone ×2
unit-testing ×2
axis2 ×1
background ×1
database ×1
gson ×1
import ×1
ios ×1
java ×1
json ×1
location ×1
robolectric ×1
spring-mvc ×1
web-services ×1