FastDFS(fdfs)遇到的坑之一,本地fastdfs-client-java开发上传图片报错:java.net.SocketTimeoutException: connect timed out

前置:

我在服务器上配置了FDFS服务, 服务器上上传等测试都通过了,没问题,后来到本地开发, 用fastdfs-client-java-1.27.jar开发包来链接服务器,上传图片报错:

java.net.SocketTimeoutException: connect timed out
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at org.csource.fastdfs.TrackerGroup.getConnection(TrackerGroup.java:46)
	at org.csource.fastdfs.TrackerGroup.getConnection(TrackerGroup.java:68)
	at org.csource.fastdfs.TrackerClient.getConnection(TrackerClient.java:57)
	at com.example.demo.entity.FastDFSClient.(FastDFSClient.java:29)
	at com.example.demo.contoller.Controller_FastDFS.uploadFile2(Controller_FastDFS.java:31)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)
......

java配置文件:

fastdfs.tracker_servers = 服务器公网IP:22122

后来才发现,这里的

fastdfs.tracker_servers不是写服务器的IP地址,这个要与

/etc/fdfs/storage.conf 中的

8   # tracker_server can ocur more than once, and tracker_server format is
119 #  "host:port", host can be hostname or ip address
120 tracker_server=11.1.1.31:22122

tracker_server 的IP地址保持一致,但是我在服务器上用的内网IP

 

因此,将其改为服务器公网IP地址就可以了

# 与java项目中的fastdfs.tracker_servers 保持一致

tracker_server = 服务器公网IP:22122 

 

 

注意:可能你跟我一样,想同时加入

racker_server = 服务器公网IP:22122 

racker_server = 服务器内网IP:22122 

这种方法我测试过,如果项目部署到服务器上是没问题的,但是到本地开发的时候,你会发现,会出现1次失败,1次成功,循环的出现的现象

你可能感兴趣的:(spring,boot,FastDFS)