[英]Why do I get 404 error on RESTEasy (wildfly) after deploy?
我用Java創建了簡單的3個文件,並使用mvn clean package wildfly:deploy命令來運行它。 它全部部署成功(至少那是在控制台中寫的)。 但是,當我去
HTTP://本地主機:8080 /實驗室REST的API /庫/書
我收到404錯誤。 我的項目位於模塊lab-rest-api(它只是項目的一部分,其他模塊用於web消費 - ejb,ear等)
我做了網絡服務和簡單的網絡消費,它很好。 但是,REST API無法正常工作。
這是我的pom.xml:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.6.3.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.6.3.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxb-provider</artifactId>
<version>3.6.3.Final</version>
<scope>provided</scope>
</dependency>
我的延伸申請:
@ApplicationPath("/")
public class RESTMain extends Application {
public RESTMain() {
System.out.println("whatever");
}
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSet<Class<?>>();
classes.add(ServicesInterface.class);
return classes;
}
}
我的服務:
@Path("/library")
@Consumes({"application/json"})
@Produces({"application/json"})
public class ServicesInterface {
Book booky = new Book();
@GET
@Path("/book/{title}")
public Book getBook(@PathParam("title") String title){
return booky;
}
@PUT
@Path("/book/{title}")
public Book addBook(@PathParam("title") String title, @QueryParam("author") String author){
return booky;
}
@POST
@Path("/book/{title}")
public Book updateBook(@PathParam("title") String title, String author){
return booky;
}
@DELETE
@Path("/book/{title}")
public Book removeBook(@PathParam("title") String title){
return booky;
}
}
“Book”是一個簡單的類,包含2個字符串(作者和標題)以及它的getter和setter。
你似乎沒有實現Get
for \\book
。 你只實現了\\book\\{title}
對於您當前的實現,請嘗試\\book\\{meaningful title in your database}
可以,然后呢,
解決此問題的步驟:
1)包裝戰爭
將<packaging>war</packaging>
到您的pom文件中。 還添加
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
2)升級wildfly maven插件
<version.wildfly.maven.plugin>2.0.1.Final</version.wildfly.maven.plugin>
3)刪除重復的依賴項
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
<scope>compile</scope>
</dependency>
4)從wildfly-maven-plugin配置中刪除這些額外的東西
<inherited>true</inherited>
<configuration>
<skip>true</skip>
</configuration>
5)運行你的mvn clean package wildfly:deploy
6)瀏覽到http:// localhost:8080 / lab-rest-api-1.0-SNAPSHOT / library / book / asd
獎金:接受的答案這顯示了如何從URL中移除-1.0快照 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.