通過這個簡短的視頻提供了我的每一個步驟。 https://youtu.be/hbSr8sRYuOk
專案代碼在這里。https://github.com/LJonn/restapiHelloWorld
在Tomcat的本地服務器上運行一切。
我遇到這個問題已經有一段時間了,我不知道問題出在哪里...... 我嘗試了諸如以下的URL。"http://localhost:8080/api/hello "和 "http://localhost:8080/helloworld/api/hello",并期望其中一個能起作用。
運行http://localhost:8080/manager/text/list,顯示helloworld.war部署得很好,并且在作業:
OK - Listed applications for virtual host [localhost]
/:running:0:ROOT
/helloworld:running:0:helloworld
/examples:running:0:examples
/host-manager:running:0:host-manager
/manager:running:0:manager
/docs:running:0:docs
那么,為什么我仍然得到一個HTTP狀態404頁面?我可以嘗試做什么來找到這個問題呢?
這些是我的專案。
這是我專案的Maven依賴項:
<dependencies>
<dependency>/span>
<groupId>/span>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-web-api</artifactId>
<version>/span>9.1.0</version>/span>
<scope>provided</scope>
</dependency>/span>
</dependencies>
感謝Nikos Paraskevopoulos的評論,看起來從Tomcat改成TomEE可能會解決這個問題,但是現在我遇到了一個問題,.war檔案不能被部署/啟動,可能是某種版本的兼容性問題,Tomcat管理器GUI在試圖啟動.war檔案時出現了這個錯誤:
FAIL - Application at context path [/helloworld]/span> could not be started
FAIL - 遇到例外 [org.apache.catalina.LifecycleException: 未能啟動組件[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/helloworld]] ]
查看經理的日志,它看起來與注解和Java 16有關,也許?
...
Caused by: java.lang.IllegalArgumentException: 不支持的class file major version 60
在org.apache.xbean.asm7.ClassReader.<init>(ClassReader.java:195)。
at org.apache.xbean.asm7.ClassReader.<init>(ClassReader.java:176)
at org.apache.xbean.asm7.ClassReader.<init>(ClassReader.java:162)
at org.apache.xbean.asm7.ClassReader.<init>(ClassReader.java:283)
at org.apache.xbean.finder.AnnotationFinder.readClassDef(AnnotationFinder.java:1176)
... 52 more
01-2021 15: 25: 02. 185 INFO [http-nio-8080-exec-3] org.apache.catalina.core.ApplicationContext.log HTMLManager: list: 列出背景關系for虛擬主機'localhost'。
我試著在Eclipse上檢查JRE的版本,它是16.0.2,在我看來,同樣的版本也在Tomcat上運行。
uj5u.com熱心網友回復:
Tomcat 10.0和10.1不是完整的Jakarta EE 9.1應用服務器:你不應該使用jakarta.jakartaee-web-api工件,這意味著運行時支持所有Jakarta EE 9.1 Web Profile技術。
您可以在Tomcat 的網站上找到支持的技術串列,對于 Tomcat 10,它們被翻譯為:
<dependency>/span>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>/span>5.0.0</version>/span>
<scope>/span>provided</scope>
</dependency>/span>
<dependency>>
<groupId>/span>jakarta.servlet.jsp</groupId>
<artifactId>jakarta.servlet.jsp-api</artifactId>
<version>/span>3.0.0</version>/span>
<scope>provided</scope>
</dependency>/span>
<dependency>>
<groupId>Jakarta.el</groupId>
<artifactId>Jakarta.el-api</artifactId>
<version>/span>4.0.0</version>/span>
<scope>provided</scope>
</dependency>/span>
<dependency>>
<groupId>Jakarta.websocket</groupId>
<artifactId>jakarta.websocket-api</artifactId>
<version>/span>2.0.0</version>
<scope>provided</scope>
</dependency>/span>
<dependency>>
<groupId>jakarta.security.auth.message</groupId>
<artifactId>Jakarta.security.Auth.message-api</artifactId>
<version>2.0.0-RC1</version>
<scope>/span>provided</scope>/span>
</dependency>/span>
自Servlet 3.0以來,可以使用servlet可插拔機制添加額外的Jakarta EE規范。要使用 JAX-RS,您需要添加:
<dependency>>
<groupId>org.glassfish.jersey.contains</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>/span>3.0.2</version>/span>
</dependency>/span>
<dependency>>
<groupId>org.glassfish.jersey.injection</groupId>/span>
<artifactId>jersey-hk2</artifactId>
<version>/span>3.0.2</version>/span>
</dependency>/span>
或使用其他JAX-RS實作的同等配置。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/319419.html
標籤:
