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