我目前正在撰寫一個小型 Spring Boot 應用程式,它從郵遞員 POST 請求中接收幾個簡單的引數并將它們寫入文本檔案。
請求正常,但郵遞員回傳此回應:
{
“時間戳”:“2022-10-07T20:57:05.951 00:00”,
“狀態”:406,
“錯誤”:“不可接受”,
“路徑”:“/api/entry”
}
這是我的控制器類:
import com.WebExample.WebEx.FileWriter.WriteFiles;
import com.WebExample.WebEx.Input.IncomingData;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
@RequestMapping(value = "/api", method = RequestMethod.POST, consumes="application/json")
@RestController
public class MainController {
@PostMapping("entry")
@ResponseStatus(HttpStatus.CREATED)
public WriteFiles getFileParams(@RequestBody IncomingData incomingData) {
String name = incomingData.getName();
int number = incomingData.getNumber();
WriteFiles file = new WriteFiles(name, number);
file.file(name,number);
return file;
}
}
還有我的檔案撰寫器類:
public class WriteFiles {
public WriteFiles(final String name, final int number) {
}
public void file(String name, int number) {
try {
String header = "*** Writing File for " name "***\n";
String footer = "\n ---- FILE COMPLETE! GENERATED ON: " LocalDate.now();
String detail = "TOTAL: --- " number;
System.out.println("AWAIT FILE GENERATION!");
File myFile = new File("newFile.txt");
if (myFile.exists()) {
myFile = new File("newerFile" number ".txt");
}
FileWriter writeFile = new FileWriter(myFile);
writeFile.write(header);
writeFile.write("--------------------------\n");
writeFile.write(detail "\n");
writeFile.write(detail " DOUBLED! " (number * 2) "\n");
writeFile.write(detail " HALVED! " (number / 2) "\n");
writeFile.write(detail " SQUARED! " number * number "\n");
writeFile.write(detail " PLUS 78! " (number 78) "\n");
writeFile.write(detail " MINUS 23! " (number - 23) "\n");
writeFile.write("--------------------------\n");
writeFile.write(footer);
writeFile.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
這是來自 Spring Boot 控制臺的錯誤:
WARN 36237 --- [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation]
同樣,它有效,但我正在嘗試解決這個錯誤?這是我的 POM.xml(使用 JVM 17):
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.WebExample</groupId>
<artifactId>WebEx</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>WebEx</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
感謝任何/所有輸入。
uj5u.com熱心網友回復:
它顯示錯誤的原因是由于您的函式的回傳型別。
您正在回傳型別為 writefiles 的物件,該物件除了函式之外沒有任何資料,這就是它顯示錯誤的原因。您可以將方法從
public WriteFiles getFileParams(@RequestBody IncomingData incomingData) {
String name = incomingData.getName();
int number = incomingData.getNumber();
WriteFiles file = new WriteFiles(name, number);
file.file(name,number);
return file;
}
至:
@PostMapping("entry")
@ResponseStatus(HttpStatus.CREATED)
public string getFileParams(@RequestBody IncomingData incomingData) {
String name = incomingData.getName();
int number = incomingData.getNumber();
WriteFiles file = new WriteFiles(name, number);
file.file(name,number);
return "file created";
}
如果一切正常,它將在郵遞員中顯示訊息為檔案創建和狀態代碼 201
此外,如果您愿意,您可以在類 Writefiles 中創建一些變數,這些變數存盤可以回傳的名稱和編號
uj5u.com熱心網友回復:
在后期映射中執行此操作:
import com.WebExample.WebEx.FileWriter.WriteFiles;
import com.WebExample.WebEx.Input.IncomingData;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
@RequestMapping(value = "/api", method = RequestMethod.POST, consumes="application/json")
@RestController
public class MainController {
@PostMapping("/entry")
@ResponseStatus(HttpStatus.CREATED)
public WriteFiles getFileParams(@RequestBody IncomingData incomingData) {
String name = incomingData.getName();
int number = incomingData.getNumber();
WriteFiles file = new WriteFiles(name, number);
file.file(name,number);
return "created";
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/511708.html
標籤:爪哇春天弹簧靴邮差
