小编Ken*_*Ken的帖子

线程"main"中的异常java.lang.NoClassDefFoundError:org/apache/xmlbeans/XmlException

我必须在java中读取xls文件.我使用poi-3.6来读取Eclipse中的xls文件.但是我在ReadExcel2.main中得到了这个ERROR" 线程中的异常"主"java.lang.NoClassDefFoundError:org/apache/xmlbeans/XmlException" (ReadExcel2.java:38) ".

我添加了以下罐子1)poi-3.6-20091214.jar 2)poi-contrib-3.6-20091214.jar 3)poi-examples-3.6-20091214.jar 4)poi-ooxml-3.6-20091214.jar 5)poi -ooxml-schemas-3.6-20091214.jar 6)poi-scratchpad-3.6-20091214.jar

以下是我使用的代码:

import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
public class ReadExcel {

    public static void main(String[] args) throws Exception {
        //
        // An excel file name. You can create a file name with a full path
        // information.
        //
        String filename = "C:\\myExcel.xl";
        //
        // Create an ArrayList to store the data …
Run Code Online (Sandbox Code Playgroud)

java

16
推荐指数
2
解决办法
8万
查看次数

当结果Object/json包含Long字段类型时,单元测试Spring MVC REST控制器

尝试使用MockMvcResultMatchers从Spring REST服务测试JSON输出时遇到问题,其中返回的对象应包含Long值.

只有当JSON对象中的值高于Integer.MAX_VALUE时,测试才会通过.这对我来说有点奇怪,因为我觉得我应该能够测试所有适用的值.

据我所知,由于JSON不包含类型信息,因此它在反序列化时对类型进行了最佳猜测,但我希望在MockMvcResultMatchers中执行比较时,有一种强制提取类型的方法.

完整代码如下,但测试是:

@Test
public void testGetObjectWithLong() throws Exception {
    Long id = 45l;

    ObjectWithLong objWithLong = new ObjectWithLong(id);

    Mockito.when(service.getObjectWithLong(String.valueOf(id))).thenReturn(objWithLong);

    mockMvc.perform(MockMvcRequestBuilders.get("/Test/" + id))
    .andExpect(MockMvcResultMatchers.status().isOk())
    .andExpect(MockMvcResultMatchers.jsonPath("$longvalue")
        .value(Matchers.isA(Long.class)))
    .andExpect(MockMvcResultMatchers.jsonPath("$longvalue")
        .value(Matchers.equalTo(id)));
}
Run Code Online (Sandbox Code Playgroud)

结果是:

java.lang.AssertionError: JSON path$longvalue
Expected: is an instance of java.lang.Long
   but: <45> is a java.lang.Integer
at org.springframework.test.util.MatcherAssertionErrors.assertThat(MatcherAssertionErrors.java:80)
...
Run Code Online (Sandbox Code Playgroud)

任何关于解决这个问题的正确方法的想法或建议都将受到赞赏.显然,我可以将Integer.MAX_VALUE添加到测试中的id字段,但这看起来很脆弱.

提前致谢.

除第三方库外,以下内容应该是自包含的

import org.hamcrest.Matchers;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.stereotype.Service;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; …
Run Code Online (Sandbox Code Playgroud)

java rest json spring-mvc spring-mvc-test

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

标签 统计

java ×2

json ×1

rest ×1

spring-mvc ×1

spring-mvc-test ×1