我正在尝试使用Spring的MockMVC框架测试将对象发布到数据库的方法.我构建了如下测试:
@Test
public void testInsertObject() throws Exception {
String url = BASE_URL + "/object";
ObjectBean anObject = new ObjectBean();
anObject.setObjectId("33");
anObject.setUserId("4268321");
//... more
Gson gson = new Gson();
String json = gson.toJson(anObject);
MvcResult result = this.mockMvc.perform(
post(url)
.contentType(MediaType.APPLICATION_JSON)
.content(json))
.andExpect(status().isOk())
.andReturn();
}
Run Code Online (Sandbox Code Playgroud)
我正在测试的方法使用Spring的@RequestBody来接收ObjectBean,但测试总是返回400错误.
@ResponseBody
@RequestMapping( consumes="application/json",
produces="application/json",
method=RequestMethod.POST,
value="/object")
public ObjectResponse insertObject(@RequestBody ObjectBean bean){
this.photonetService.insertObject(bean);
ObjectResponse response = new ObjectResponse();
response.setObject(bean);
return response;
}
Run Code Online (Sandbox Code Playgroud)
gson在测试中创建的json:
{
"objectId":"33",
"userId":"4268321",
//... many more
}
Run Code Online (Sandbox Code Playgroud)
ObjectBean类
public class ObjectBean {
private String objectId; …Run Code Online (Sandbox Code Playgroud) 我认为这很简单,但我似乎无法在我的db2数据库中使用AUTO_INCREMENT.我做了一些搜索,人们似乎正在使用"默认生成",但这对我不起作用.
如果它有帮助,这里是我想要创建的表,其中sid是自动递增的.
create table student(
sid integer NOT NULL <auto increment?>
sname varchar(30),
PRIMARY KEY (sid)
);
Run Code Online (Sandbox Code Playgroud)
任何指针都表示赞赏.
有类似的问题,但他们似乎避免回答这个具体的问题.如何通过Java的Runtime api 获取我的Java程序使用的内存?
这里的答案表明我可以这样做:
System.out.println("KB: " + (double) (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1024);
Run Code Online (Sandbox Code Playgroud)
但无论我运行哪个程序,这总是返回相同的数字.例如,下面我有一个程序,无论我在地图中放了多少个数字,内存使用量保持不变.
package memoryTest;
import java.util.HashMap;
import java.util.Map;
public class MemoryTest {
static Map<Integer, NewObject> map = new HashMap<Integer, NewObject>();
public static void main(String[] args){
System.out.println("KB: " + (double) (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1024);
fillMemory(25);
System.out.println("KB: " + (double) (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1024);
}
static int j=0;
public static void fillMemory(int i){
for(int k=0; k< 2000; k++)
map.put(j++, new NewObject());
}
public static class …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个项目,该项目需要来自javax.persistence包的EntityManager EntityManagerFacotry和Persistence.它似乎是针对数据库服务的,但是当前的代码没有很好地记录.通过搜索谷歌似乎应该有一个与此一起出现的xml文件,但也没有其中一个.我想我的问题只是如何让这些未解决的进口消失?我是否必须在构建路径中添加另一个jar?似乎我不应该这样做,因为它自1.5以来一直存在.
任何帮助是极大的赞赏.
我有一个非常简单的反应项目设置:
??? app.js
??? components
? ??? MainWrapper.js
? ??? html.js
??? package.json
??? server.js
Run Code Online (Sandbox Code Playgroud)
该应用程序启动:
node server.js
Run Code Online (Sandbox Code Playgroud)
它使用快速服务器并在html.js中为HtmlComponent呈现标记:
import React from 'react';
import MainWrapper from './MainWrapper.js'
class HtmlComponent extends React.Component {
render() {
return (
<html>
<head>
<meta charSet="utf-8" />
<title>My Awesome Site</title>
<meta name="viewport" content="width=device-width, user-scalable=no" />
<link rel="stylesheet" href="awesome.css" />
</head>
<body>
<div id="root"></div>
</body>
</html>
)
}
}
export default HtmlComponent;
Run Code Online (Sandbox Code Playgroud)
目标是创建一个填充'root'div的Wrapper.现在非常简单:
MainWrapper.js:
import React from 'react';
import ReactDOM from 'react-dom';
var MainWrapper = React.createClass ({ …Run Code Online (Sandbox Code Playgroud) JavaFX应该包含在最新版本的JDK中.我正在使用1.7 v 17.进口如:
import javafx.fxml.Initializable;
Run Code Online (Sandbox Code Playgroud)
不被承认.我宁愿不必手动链接到jar.
我之前听说这是一个错误,但应该已经修好了.http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7166330
有没有人对如何识别javafx有答案.我不想让e(fx)clipe为我做,我不想连接jar.据我所知,它现在包含在最新版本的jdk中,因此我应该能够像上面那样进行导入吗?
我在sql中有一个表如下:
CREATE TABLE Reserves(
sid INTEGER,
bid INTEGER,
day DATE,
PRIMARY KEY (sid, bid, day),
FOREIGN KEY (sid) REFERENCES Sailors,
FOREIGN KEY (bid) REFERENCES Boats
);
Run Code Online (Sandbox Code Playgroud)
而我正试图插入其中:
INSERT INTO Reserves VALUES(22, 101, '01-01-1998');
Run Code Online (Sandbox Code Playgroud)
但我收到错误:ORA-01843:不是有效月份
这是一个Oracle数据库.我不确定我的日期格式有什么问题.
我的应用程序中有两个不同的阶段,即使用相同FXML文件的帮助屏幕.而不是创建2个FXML文件,我想只使用一个,并有两个控制器调用相同的fxml.
唯一的问题是Controller是在FXML文件中分配的.那么,有没有办法在Controller类本身中用代码更改分配的控制器?
我真的想避免重复FXML文件只是为了更改每个文件中的Controller.提前致谢.
我创建了一个使用javax.ws.rs工作得很好的照片上传器.这是它的标志性和基本要点:
@POST
@Path("/upload/photo")
@Consumes("multipart/form-data")
@Produces("application/json")
public String uploadPhoto(InputStream stream){
try {
int read = 0;
FileOutputStream fos = new FileOutputStream(file);
CountingOutputStream out = new CountingOutputStream(fos);
byte[] bytes = new byte[MAX_UPLOAD_SIZE];
while ((read = stream.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
out.flush();
out.close();
} catch (IOException e) {
// TODO throw!
e.printStackTrace();
}
//...
}
Run Code Online (Sandbox Code Playgroud)
我可以使用apache.commons.httpClient库测试这个,如下所示:
@Test
public void testUpload() {
int statusCode = 0;
String methodResult = null;
String endpoint = SERVICE_HOST + "/upload/photo";
PostMethod post = new PostMethod(endpoint); …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过Stripe Payments的帖子请求接收webhook.处理它的java方法如下所示:
@ResponseBody
@RequestMapping( consumes="application/json",
produces="application/json",
method=RequestMethod.POST,
value="stripeWebhookEndpoint")
public String stripeWebhookEndpoint(Event event){
logger.info("\n\n" + event.toString());
logger.info("\n\n" + event.getId());
return null;
}
Run Code Online (Sandbox Code Playgroud)
但Stripe事件总是返回所有空值:
<com.stripe.model.Event@315899720 id=null> JSON: {
"id": null,
"type": null,
"user_id": null,
"livemode": null,
"created": null,
"data": null,
"pending_webhooks": null
}
Run Code Online (Sandbox Code Playgroud)
如果方法接收到String,并使用@RequestBody:
@ResponseBody
@RequestMapping( consumes="application/json",
produces="application/json",
method=RequestMethod.POST,
value="stripeWebhookEndpoint")
public String stripeWebhookEndpoint(@RequestBody String json){
logger.info(json);
return null;
}
Run Code Online (Sandbox Code Playgroud)
在这里,它打印没有空值的json.这是打印请求的一部分:
{
"created": 1326853478,
"livemode": false,
"id": "evt_00000000000000",
"type": "charge.succeeded",
"object": "event",
"request": null,
"data": {
"object": {
"id": "ch_00000000000000",
"object": …Run Code Online (Sandbox Code Playgroud) java ×3
eclipse ×2
javafx ×2
rest ×2
spring-mvc ×2
api ×1
controller ×1
db2 ×1
fxml ×1
javascript ×1
json ×1
memory ×1
oracle ×1
persistence ×1
reactjs ×1
runtime ×1
sql ×1
webhooks ×1