Я пытаюсь записать несколько файлов на общий ресурс SMB с помощью Spring Integration SMB. У меня следующая конфигурация:
@Configuration
public class SambaConfiguration {
@Value("${samba.host}")
private String host;
@Value("${samba.port}")
private int port;
@Value("${samba.domain}")
private String domain;
@Value("${samba.username}")
private String username;
@Value("${samba.password}")
private String password;
@Value("${samba.share}")
private String share;
@Bean
public SmbSessionFactory smbSessionFactory() {
SmbSessionFactory smbSession = new SmbSessionFactory();
smbSession.setHost(host);
smbSession.setPort(port);
smbSession.setDomain(domain);
smbSession.setUsername(username);
smbSession.setPassword(password);
smbSession.setShareAndDir(share);
smbSession.setSmbMinVersion(DialectVersion.SMB202);
smbSession.setSmbMaxVersion(DialectVersion.SMB311);
return smbSession;
}
@Bean
public MessageHandler smbMessageHandler(SmbSessionFactory smbSessionFactory) {
SmbMessageHandler handler = new SmbMessageHandler(smbSessionFactory);
handler.setRemoteDirectoryExpressionString("'/remote'");
handler.setAutoCreateDirectory(true);
return handler;
}
@Bean
public IntegrationFlow smbOutboundFlow(SmbSessionFactory smbSessionFactory) {
return IntegrationFlow.from("toSmbChannel").handle(
Smb.outboundAdapter(smbSessionFactory, FileExistsMode.REPLACE)
.useTemporaryFileName(false)
.fileNameExpression("headers['" + FileHeaders.FILENAME + "']")
.remoteDirectory("smbTarget")
).get();
}
@MessagingGateway
public interface SmbMessagingGateway {
@Gateway(requestChannel = "toSmbChannel")
void sendToSmb(File file);
}
}
основан на документации Spring: https://docs.spring.io/spring-integrati ... b-outbound.
В моем application.yml я установил ожидаемые значения следующим образом:
samba:
host: "192.168.1.45"
port: 445
domain: "WORKGROUP"
username: "username"
password: "password"
share: "downloads"
Затем я пытаюсь написать службу, которая отправляет файлы на SMB-сервер:
@Service
public class SambaServiceImpl implements SambaService {
private final SmbMessagingGateway smbMessagingGateway;
@Autowired
public SambaServiceImpl(SmbMessagingGateway smbMessagingGateway) {
this.smbMessagingGateway = smbMessagingGateway;
}
@Override
public void sendFile(String destinationFilePath, byte[] fileBytes) throws IOException {
File file = new File(destinationFilePath);
FileUtils.writeByteArrayToFile(file, fileBytes);
smbMessagingGateway.sendToSmb(file);
}
}
Однако всякий раз, когда я пытаюсь его использовать, я получаю исключение UnknownHostException: null и не могу понять, почему это происходит.
Вот стек, который я получить:
Caused by: java.io.IOException: Unable to initialize share: smb://WORKGROUP;username:******@192.168.1.45:445/downloads
at org.springframework.integration.smb.session.SmbShare.init(SmbShare.java:118)
at org.springframework.integration.smb.session.SmbSessionFactory.createSession(SmbSessionFactory.java:86)
at org.springframework.integration.smb.session.SmbSessionFactory.getSession(SmbSessionFactory.java:62)
... 79 common frames omitted
Caused by: jcifs.smb.SmbException: Failed to connect to server
at jcifs.smb.SmbTreeConnection.connectWrapException(SmbTreeConnection.java:429)
at jcifs.smb.SmbFile.ensureTreeConnected(SmbFile.java:573)
at jcifs.smb.SmbFile.getType(SmbFile.java:920)
at jcifs.smb.SmbFile.canRead(SmbFile.java:1070)
at org.springframework.integration.smb.session.SmbShare.init(SmbShare.java:107)
... 81 common frames omitted
Caused by: java.net.UnknownHostException: null
at jcifs.netbios.NameServiceClientImpl.getAllByName(NameServiceClientImpl.java:978)
at jcifs.netbios.NameServiceClientImpl.getAllByName(NameServiceClientImpl.java:55)
at jcifs.smb.SmbTransportPoolImpl.getSmbTransport(SmbTransportPoolImpl.java:173)
at jcifs.smb.SmbTransportPoolImpl.getSmbTransport(SmbTransportPoolImpl.java:48)
at jcifs.smb.SmbTreeConnection.connectHost(SmbTreeConnection.java:565)
at jcifs.smb.SmbTreeConnection.connectHost(SmbTreeConnection.java:489)
at jcifs.smb.SmbTreeConnection.connect(SmbTreeConnection.java:465)
at jcifs.smb.SmbTreeConnection.connectWrapException(SmbTreeConnection.java:426)
... 85 common frames omitted
Подробнее здесь: https://stackoverflow.com/questions/793 ... ration-smb
UnknownHostException: null при использовании Spring Integration SMB ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1737025314
Anonymous
Я пытаюсь записать несколько файлов на общий ресурс SMB с помощью Spring Integration SMB. У меня следующая конфигурация:
@Configuration
public class SambaConfiguration {
@Value("${samba.host}")
private String host;
@Value("${samba.port}")
private int port;
@Value("${samba.domain}")
private String domain;
@Value("${samba.username}")
private String username;
@Value("${samba.password}")
private String password;
@Value("${samba.share}")
private String share;
@Bean
public SmbSessionFactory smbSessionFactory() {
SmbSessionFactory smbSession = new SmbSessionFactory();
smbSession.setHost(host);
smbSession.setPort(port);
smbSession.setDomain(domain);
smbSession.setUsername(username);
smbSession.setPassword(password);
smbSession.setShareAndDir(share);
smbSession.setSmbMinVersion(DialectVersion.SMB202);
smbSession.setSmbMaxVersion(DialectVersion.SMB311);
return smbSession;
}
@Bean
public MessageHandler smbMessageHandler(SmbSessionFactory smbSessionFactory) {
SmbMessageHandler handler = new SmbMessageHandler(smbSessionFactory);
handler.setRemoteDirectoryExpressionString("'/remote'");
handler.setAutoCreateDirectory(true);
return handler;
}
@Bean
public IntegrationFlow smbOutboundFlow(SmbSessionFactory smbSessionFactory) {
return IntegrationFlow.from("toSmbChannel").handle(
Smb.outboundAdapter(smbSessionFactory, FileExistsMode.REPLACE)
.useTemporaryFileName(false)
.fileNameExpression("headers['" + FileHeaders.FILENAME + "']")
.remoteDirectory("smbTarget")
).get();
}
@MessagingGateway
public interface SmbMessagingGateway {
@Gateway(requestChannel = "toSmbChannel")
void sendToSmb(File file);
}
}
основан на документации Spring: https://docs.spring.io/spring-integration/reference/smb.html#smb-outbound.
В моем application.yml я установил ожидаемые значения следующим образом:
samba:
host: "192.168.1.45"
port: 445
domain: "WORKGROUP"
username: "username"
password: "password"
share: "downloads"
Затем я пытаюсь написать службу, которая отправляет файлы на SMB-сервер:
@Service
public class SambaServiceImpl implements SambaService {
private final SmbMessagingGateway smbMessagingGateway;
@Autowired
public SambaServiceImpl(SmbMessagingGateway smbMessagingGateway) {
this.smbMessagingGateway = smbMessagingGateway;
}
@Override
public void sendFile(String destinationFilePath, byte[] fileBytes) throws IOException {
File file = new File(destinationFilePath);
FileUtils.writeByteArrayToFile(file, fileBytes);
smbMessagingGateway.sendToSmb(file);
}
}
Однако всякий раз, когда я пытаюсь его использовать, я получаю исключение UnknownHostException: null и не могу понять, почему это происходит.
Вот стек, который я получить:
Caused by: java.io.IOException: Unable to initialize share: smb://WORKGROUP;username:******@192.168.1.45:445/downloads
at org.springframework.integration.smb.session.SmbShare.init(SmbShare.java:118)
at org.springframework.integration.smb.session.SmbSessionFactory.createSession(SmbSessionFactory.java:86)
at org.springframework.integration.smb.session.SmbSessionFactory.getSession(SmbSessionFactory.java:62)
... 79 common frames omitted
Caused by: jcifs.smb.SmbException: Failed to connect to server
at jcifs.smb.SmbTreeConnection.connectWrapException(SmbTreeConnection.java:429)
at jcifs.smb.SmbFile.ensureTreeConnected(SmbFile.java:573)
at jcifs.smb.SmbFile.getType(SmbFile.java:920)
at jcifs.smb.SmbFile.canRead(SmbFile.java:1070)
at org.springframework.integration.smb.session.SmbShare.init(SmbShare.java:107)
... 81 common frames omitted
Caused by: java.net.UnknownHostException: null
at jcifs.netbios.NameServiceClientImpl.getAllByName(NameServiceClientImpl.java:978)
at jcifs.netbios.NameServiceClientImpl.getAllByName(NameServiceClientImpl.java:55)
at jcifs.smb.SmbTransportPoolImpl.getSmbTransport(SmbTransportPoolImpl.java:173)
at jcifs.smb.SmbTransportPoolImpl.getSmbTransport(SmbTransportPoolImpl.java:48)
at jcifs.smb.SmbTreeConnection.connectHost(SmbTreeConnection.java:565)
at jcifs.smb.SmbTreeConnection.connectHost(SmbTreeConnection.java:489)
at jcifs.smb.SmbTreeConnection.connect(SmbTreeConnection.java:465)
at jcifs.smb.SmbTreeConnection.connectWrapException(SmbTreeConnection.java:426)
... 85 common frames omitted
Подробнее здесь: [url]https://stackoverflow.com/questions/79361324/unknownhostexception-null-using-spring-integration-smb[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия