ВНИМАНИЕ: Когда вы видите postmapping-url-here
и MyOwnDefinedEntity
там, где я показываю код, это просто означает, что я стараюсь не раскрывать слишком много.
Поэтому я использую Twilio
для отправки и получения текстовых сообщений.Я застрял в этой проблеме около 3 дней, и я просто не могу понять, как ее решить.
Я использую Spring Boot
в качестве основы приложения, Gradle
в качестве инструмента для сборки и VSCode
в качестве IDE.Я также использую Ngrok
для создания туннеля для localhost:8080
для запуска.
Когда я запускал его как:
public static void main(String[] args) {
}
, он работал отлично, и мой Twilio
Number отправил текст обратно в ответ.
Однако, когда я помещаю его внутрь своей собственной функции, вызываю эту функцию и запускаю ее со всем приложением, я все равно получаю тот же код состояния 200
откогда он работал как main
метод, но мой Twilio
номер не отправляет мне ответ.
Я пытался использовать @PostMapping
и @GetMapping
, поскольку я пытался протестировать его дляPOST
и GET
.
В моем коде отправки и получения с сайта Twilio
я попытался использовать application/xml
и application/json
для типа ответа.
Вот часть кода, который у меня есть:
public static void TwilioRespondToSMS() {
get("/", (req, res) -> "");
post("/<postmapping-url-here>", (req, res) -> {
res.type("application/xml");
Body body = new Body
.Builder("This is a response to your text message")
.build();
Message sms = new Message
.Builder()
.body(body)
.build();
MessagingResponse twiml = new MessagingResponse
.Builder()
.message(sms)
.build();
return twiml.toXml();
});
}
Это код main
:
@SpringBootApplication
public class ApplicationServerClass {
public static void main(String[] args) {
SpringApplication.run(ApplicationServerClass.class, args);
//TwilioRespondToSMS();
}
// Whatever other code ...
}
Я также попытался поместить свою функцию в:
@Bean
public CommandLineRunner commandRunner() {
return (args) -> {
TwilioRespondToSMS();
// Whatever other code ...
}
}
Вот функция @PostMapping
:
@CrossOrigin(origins = "http://localhost:4200")
@PostMapping("/<postmapping-url-here>")
public ResponseEntity<MyOwnDefinedEntity> getMyOwnDefinedEntity(@PathVariable Long id) {
log.debug("REST request to get MyOwnDefinedEntity : {}", id);
Optional<MyOwnDefinedEntity> myOwnDefinedEntity = myOwnDefinedEntityRepository.findById(id);
//if(myOwnDefinedEntity.isPresent())
return new ResponseEntity<MyOwnDefinedEntity>(MyOwnDefinedEntity.get(), HttpStatus.OK);
}
Пример с сайта Twilio показал ее как main
функцию.Что мне нужно изменить из этого примера при запуске всего приложения?
Заранее спасибо.