gpt4 book ai didi

java - Wildfly-swarm:无法访问 jax-rs 资源(404 未找到)

转载 作者:行者123 更新时间:2023-12-01 20:18:07 24 4
gpt4 key购买 nike

我想尝试一下 Wildfly-swarm。我使用 Jax-rs 分数和一个简单的 hello world 资源创建了一个项目。我运行了它,但得到了 404 Not Found。

这是我的 pom.xml

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.aca.studies</groupId>
<artifactId>swarm</artifactId>
<version>1.0</version>

<properties>
<version.wildfly-swarm>2017.7.0</version.wildfly-swarm>
</properties>

<build>
<plugins>
<plugin>
<groupId>org.wildfly.swarm</groupId>
<artifactId>wildfly-swarm-plugin</artifactId>
<version>${version.wildfly-swarm}</version>
<executions>
<execution>
<goals>
<goal>package</goal>
</goals>
</execution>
<execution>
<id>start</id>
</execution>
<execution>
<id>stop</id>
</execution>
</executions>
</plugin>
</plugins>
</build>

<dependencies>
<dependency>
<groupId>org.wildfly.swarm</groupId>
<artifactId>jaxrs</artifactId>
<version>${version.wildfly-swarm}</version>
</dependency>
</dependencies>

这是我的 Jax-rs 资源

package org.aca.studies;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("/app")
public class Resource {

@GET
@Path("/greet")
@Produces("text/html")
public String greet() {
return System.currentTimeMillis() + "";
}
}

正如你所看到的,它非常简单。也许我错过了一些东西。我没有添加 @ApplicationPath 带注释的类,因为根据文档( https://wildfly-swarm.gitbooks.io/wildfly-swarm-users-guide/content/common/jax-rs.html ),该分数默认添加 1。我从 GitHub ( https://github.com/wildfly-swarm/wildfly-swarm-examples/tree/master/jaxrs/jaxrs ) 上的示例中学到的另一件事是:

Since WildFly Swarm apps tend to support one deployment per executable, it automatically adds a jboss-web.xml to the deployment if it doesn't already exist. This is used to bind the deployment to the root of the web-server, instead of using the .war's own name as the application context.

这就是为什么我尝试从 http://localhost:8080/app/greet 访问我的资源

最佳答案

从你的 pom 来看,我认为问题是你没有 <packaging>war</packaging>存在,这意味着创建了一个 JAR。

如果你把Maven打包改为WAR那么应该没问题

关于java - Wildfly-swarm:无法访问 jax-rs 资源(404 未找到),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45377319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com