2017-07-28 71 views
0

我想给野蝇群一个尝试。我用Jax-rs分数和一个简单的hello世界资源创建了一个项目。我跑了它,但我得到404未找到。野蝇群:无法访问jax-rs资源(404未找到)

这里是我的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),这个分数默认添加了一个。我从例子中拿起放在GitHub上(https://github.com/wildfly-swarm/wildfly-swarm-examples/tree/master/jaxrs/jaxrs)另一件事是:

由于WildFly群的应用程序倾向于支持每一个可执行的部署,它会自动添加的jboss-web.xml中部署,如果它不” t已经存在。这用于将部署绑定到Web服务器的根目录,而不是使用.war自己的名称作为应用程序上下文。

所以这就是为什么我试图从http://localhost:8080/app/greet

+0

您如何开始您的服务? – Seelenvirtuose

+0

mvn clean wildfly-swarm:运行 – Armando

回答

2

访问我的资源从你的POM我认为这个问题是,你不必<packaging>war</packaging>目前,这意味着一个JAR改为创建。

如果您将Maven包装更改为WAR,那么它应该很好

+0

它的工作,谢谢@Ken。我还必须添加maven war插件,因为缺少web.xml文件导致包装失败。 – Armando