慕尼黑8549860
2023-08-04 10:09:26
我在創(chuàng)建 Nifi 處理器類的實例時收到 ExceptionInIntializer 錯誤(代碼如下)。在線查看后,該錯誤是由于靜態(tài)初始化程序中存在錯誤而導致的,而我的類中沒有該錯誤。我的代碼中是否還有其他內容可能導致此錯誤?import ApplicationProperties;import IndexAttributesUtil;import ConvertRecordUtil;import EntityTypeUpdates;import ViewTypeUtil;import QueryHelper;import MServiceLocator;public class RepProcessor extends AbstractProcessor { protected final Logger logger = LoggerFactory.getLogger(RepProcessor.class); private static final ApplicationProperties applicationProperties = new ApplicationProperties(); protected static final PropertyDescriptor HOST = new PropertyDescriptor.Builder().name("Hostname") .description("").required(true) .defaultValue(applicationProperties.getHost()).addValidator(StandardValidators.NON_EMPTY_VALIDATOR).build(); protected static final PropertyDescriptor PORT = new PropertyDescriptor.Builder().name("Port") .description("").required(true).defaultValue(applicationProperties.getPort()) .addValidator(StandardValidators.NON_EMPTY_VALIDATOR).build(); protected static final PropertyDescriptor TIMEOUT = new PropertyDescriptor.Builder().name("Timeout") .description("").required(true) .defaultValue(Integer.toString(applicationProperties.getTimeout())) .addValidator(StandardValidators.NON_EMPTY_VALIDATOR).build(); protected static final PropertyDescriptor MAIN_VIEW = new PropertyDescriptor.Builder().name("Main View") .description("").required(true).addValidator(StandardValidators.NON_EMPTY_VALIDATOR).build(); protected static final PropertyDescriptor SUB_VIEW = new PropertyDescriptor.Builder().name("Sub-View") .description("").required(false) .addValidator(StandardValidators.NON_EMPTY_VALIDATOR).build();我正在我的測試類中創(chuàng)建該處理器的實例:
1 回答

嚕嚕噠
TA貢獻1784條經驗 獲得超7個贊
ExceptionInitializaerError 意味著某些靜態(tài)代碼或對象中存在錯誤,并且由于您只有靜態(tài)變量,因此很可能是由于創(chuàng)建了 PropertyDescriptors 之一。
您發(fā)布的錯誤顯示錯誤的原因是NumberFormatException: null,這意味著某些靜態(tài)代碼試圖將 null 轉換為數字。
我猜問題是這個屬性:
protected static final PropertyDescriptor TIMEOUT = new PropertyDescriptor.Builder().name("Timeout")
.description("").required(true)
.defaultValue(Integer.toString(applicationProperties.getTimeout()))
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR).build();
如果applicationProperties.getTimeout()為 null,則它將傳遞 null 來Integer.toString()導致錯誤。
添加回答
舉報
0/150
提交
取消