小编Mat*_*att的帖子

使用Spring MockMVC测试Spring的@RequestBody

我正在尝试使用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)

integration-testing spring-mvc

47
推荐指数
4
解决办法
9万
查看次数

如何在db2中使用AUTO_INCREMENT?

我认为这很简单,但我似乎无法在我的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)

任何指针都表示赞赏.

db2 auto-increment

34
推荐指数
2
解决办法
9万
查看次数

如何通过Java的Runtime api获取我的Java程序使用的内存?

有类似的问题,但他们似乎避免回答这个具体的问题.如何通过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)

java memory api runtime

32
推荐指数
1
解决办法
6万
查看次数

无法解析导入javax.persistence

我目前正在开发一个项目,该项目需要来自javax.persistence包的EntityManager EntityManagerFacotry和Persistence.它似乎是针对数据库服务的,但是当前的代码没有很好地记录.通过搜索谷歌似乎应该有一个与此一起出现的xml文件,但也没有其中一个.我想我的问题只是如何让这些未解决的进口消失?我是否必须在构建路径中添加另一个jar?似乎我不应该这样做,因为它自1.5以来一直存在.

任何帮助是极大的赞赏.

eclipse persistence

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

Reactjs:文档未定义

我有一个非常简单的反应项目设置:

??? 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)

javascript reactjs

17
推荐指数
1
解决办法
4万
查看次数

Eclipse中无法识别JavaFX

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中,因此我应该能够像上面那样进行导入吗?

eclipse javafx

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

SQL"不是有效月份"

我在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数据库.我不确定我的日期格式有什么问题.

sql oracle

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

具有多个不同控制器的JavaFX 1 FXML文件?

我的应用程序中有两个不同的阶段,即使用相同FXML文件的帮助屏幕.而不是创建2个FXML文件,我想只使用一个,并有两个控制器调用相同的fxml.

唯一的问题是Controller是在FXML文件中分配的.那么,有没有办法在Controller类本身中用代码更改分配的控制器?

我真的想避免重复FXML文件只是为了更改每个文件中的Controller.提前致谢.


controller javafx fxml

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

如何使用SpringMVC和MockMVC为文件上载发布multipart/form-data

我创建了一个使用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)

java rest spring-mvc

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

如何从Java中的Stripe接收Webhook

我正在尝试通过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 rest json webhooks stripe-payments

6
推荐指数
3
解决办法
6175
查看次数