【发布时间】:2020-04-22 19:31:51
【问题描述】:
我正在尝试创建一个额外的类来处理用户的连接和状态,但我仍然遇到一些奇怪的错误,我不明白。
这是我的 'FTPConnection 类 我使用 DI 创建了私有 ftpClient(我在主类中有 @Bean 注释),我正在尝试使用来自另一个类的此方法连接到服务器
@Autowired
private FTPClient ftpClient;
public void connect() {
try {
ftpClient.connect("host");
ftpClient.login("username", "password");
int reply = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
System.err.println("FTP server refused connection.");
System.exit(1);
}
}
catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
这是具有 RequestMapping 方法的类
@PostMapping("/uploadFile")
public void uploadFile(@RequestParam("file") MultipartFile file) {
var connection = new FTPConnection();
try {
connection.connect();
System.out.println(connection.isConnected());
FTPClient ftpClient = connection.getFtpClient();
ftpClient.changeWorkingDirectory("/usb");
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
[...]
我得到的错误是
Servlet.service() 用于路径 [] 上下文中的 servlet [dispatcherServlet] 引发异常 [请求处理失败;嵌套异常是 java.lang.NullPointerException] 与根 java.lang.NullPointerException:空 在 com.tenpetr.FTPFileUploader.FTPConnection.connect(FTPConnection.java:16) ~[main/:na] 在 com.tenpetr.FTPFileUploader.FileTransfer.uploadFile(FileTransfer.java:29) ~[main/:na] 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ...
你知道我为什么被困在这里吗?感谢您的建议。
【问题讨论】:
-
请贴出FtpConnection构造函数的内容
-
@KompiKompi 这个类没有构造函数
-
你的意思是它有一个空的默认值? ;)
-
@KompiKompi 完全正确:D
-
能否请您将空构造函数添加到代码中并在此处放置一个断点,以便我们可以查看 FtpClient 是否已初始化? ftpClient 类广告构造函数长什么样子?
标签: java spring spring-boot dependency-injection