创建workbook对象一直抛异常
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建workbook对象一直抛异常相关的知识,希望对你有一定的参考价值。
我在本地可以创建workbook对象
并且可以读取excel文件
代码如下:
try
File xlsFile = new File("D:\\配置管理数据导入模板.xls");
\\System.out.println(xlsFile.getPath());
\\InputStream is=new FileInputStream(xlsFile.getAbsoluteFile());
Workbook book = Workbook.getWorkbook(xlsFile);
System.out.println("11");
Sheet sheet = book.getSheet(0);
System.out.println(sheet.getCell(0, 1).getContents());
catch(Exception e)
上述代码可运行
但是在服务器上运行如下代码时就一直抛异常
异常为:java.lang.reflect.InvocationTargetException
我的目标是从本地上传excel文件,然后将文件导入数据库
在本地编译通过,但是一旦将类文件上传至服务器并导入时
在创建workbook对象时抛出上述异常
若没导入JAR包,本地肯定都无法编译通过的啊。。
至于work 和job 可数不可数纯属扯淡,不懂别掺和
我不明白你说的POI是什么 ,我用的是jxl
我用的是weblogic环境, 我也觉得是没有能够调用到jxl包里面的类
不知道路径如何配置 本地能运行说明本地配置环境正确,
基本可以肯定的是中间件的配置路径错误
另外:两地JDK版本一致,无差别!
1、poi的JAR包是否上传到服务器
2、服务器上以前是否有poi相关的JAR包(或其他JAR包中的class)与现在的POI JAR包冲突? 需要重点检查一下。 参考技术A 你到入jar包没有 参考技术B 因为work是可数名词,而job是不可数名词.
断言被测系统应该抛出一个断言异常
我正在创建一个扩展方法,该方法对对象执行测试以查看它是否具有特定的自定义属性。
我想为我的扩展方法创建一个单元测试。如何断言扩展方法中的测试应该失败?
[Test]
public void ShouldFailIfEmailAttributeMissingFromFieldName()
{
//--Arrange
var model = new { Field = 1 };
//--Act
model.ShouldValidateTheseFields(new List<FieldValidation>
{
new EmailAddressFieldValidation
{
ErrorId = 1,
ErrorMessage = "Message",
FieldName = nameof(model.Field)
}
});
//--Assert
}
基本上,ShouldValidateTheseFields
进行反射并声明它应该在名为“Field”的字段上具有自定义属性,并且我需要断言它失败了。
赶上预期的例外。如果没有抛出则测试失败
[Test]
public void ShouldFailIfEmailAttributeMissingFromFieldName() {
//--Arrange
var model = new { Field = 1 };
//--Act
try {
model.ShouldValidateTheseFields(new List<FieldValidation> {
new EmailAddressFieldValidation {
ErrorId = 1,
ErrorMessage = "Message",
FieldName = nameof(model.Field)
}
});
} catch(MyExpectedException e) {
return;
}
//--Assert
Assert.Fail();
}
根据所使用的测试框架,应该有一种方法可以断言测试的预期异常,这基本上遵循上面的类似格式。
创建一个新的自定义异常,如果它缺少自定义属性,则抛出它:
[Test]
public void ShouldFailIfEmailAddressAttributeIsMissingFromFieldName()
{
//--Arrange
var model = new { Field = 1 };
//--Act
Should.Throw<EmailAddressAttributeNotFoundException>(() => model.ShouldValidateTheseFields(
new List<FieldValidation>
{
new EmailAddressFieldValidation
{
ErrorId = 1,
ErrorMessage = "Message",
FieldName = nameof(model.Field)
}
}));
}
要检查断言是否失败,您需要捕获断言异常。在这种情况下,由于正在使用Shouldly Framework,因此在扩展方法中抛出了一个Shouldly.ShouldAssertException:
[Test]
public void ShouldFailIfEmailAddressAttributeHasWrongErrorId()
{
//--Arrange
var model = new TestModelTwo();
//--Act
Should.Throw<ShouldAssertException>(() => model.ShouldValidateTheseFields(
new List<FieldValidation>
{
new EmailAddressFieldValidation
{
ErrorId = 2,
ErrorMessage = "Message",
FieldName = nameof(model.Field)
}
}));
}
使用课程:
public class TestModel
{
[EmailAddress(1)]
public string Field { get; set; }
}
扩展方法中的失败断言是ErrorId.ShouldBe(2),当它在模型上实际为1时。
以上是关于创建workbook对象一直抛异常的主要内容,如果未能解决你的问题,请参考以下文章