Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 已部署Wildfly服务,但未找到资源_Java_Maven_Wildfly_Resteasy - Fatal编程技术网

Java 已部署Wildfly服务,但未找到资源

Java 已部署Wildfly服务,但未找到资源,java,maven,wildfly,resteasy,Java,Maven,Wildfly,Resteasy,我刚刚在Wildfly中启动了一个webapp项目,使用maven实现了resteasy。从日志中可以看出,服务的部署是正确的,但我不知道是什么原因导致我无法访问资源 我尝试过使用autoscan功能、定义@Application等,但都不起作用 我发布的最后一个代码的服务器日志的结果是: 20:57:25,781 INFO [stdout] (ServerService Thread Pool -- 66) ************ Constructor ********** 20:57

我刚刚在Wildfly中启动了一个webapp项目,使用maven实现了resteasy。从日志中可以看出,服务的部署是正确的,但我不知道是什么原因导致我无法访问资源

我尝试过使用autoscan功能、定义@Application等,但都不起作用

我发布的最后一个代码的服务器日志的结果是:

20:57:25,781 INFO  [stdout] (ServerService Thread Pool -- 66) ************ Constructor **********

20:57:25,781 INFO  [org.jboss.resteasy.resteasy_jaxrs.i18n] (ServerService Thread Pool -- 66) RESTEASY002225: Deploying javax.ws.rs.core.Application: class es.domain.prj.rest.JaxRsActivator
20:57:25,781 INFO  [stdout] (ServerService Thread Pool -- 66) ************ Initializing **********

20:58:03,634 INFO  [stdout] (ServerService Thread Pool -- 66) *** REST SERVICE ****

20:58:09,600 INFO  [stdout] (ServerService Thread Pool -- 66) ************ Initializing **********

20:58:11,113 INFO  [stdout] (ServerService Thread Pool -- 66) *** REST SERVICE****

20:58:13,440 INFO  [org.jboss.resteasy.resteasy_jaxrs.i18n] (ServerService Thread Pool -- 66) RESTEASY002220: Adding singleton resource es.domain.prj.rest.RestService from Application class es.domain.prj.rest.JaxRsActivator
20:58:13,633 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 66) WFLYUT0021: Registered web context: /prj
我已尝试访问:

http://localhost:8080/prj/jlanza/resource
-->找不到

http://localhost:8080/prj/jlanza
-->找不到

http://localhost:8080/prj/resource
-->找不到

你能给我一些提示吗?资源在哪里注册?我知道这一定是一件很愚蠢的事情,但我无法识别它

在下面找到源代码、pom.xml和web.xml文件

提前谢谢

web.xml


您的应用程序应可在以下位置访问:


http://localhost:8080/prj/jlanza/resource
问题是在
下,我使用了两个不同的名称。这导致无法链接如何启动服务

此外,我的pom文件中还包括:

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-servlet-initializer</artifactId>
        <version>${jboss.resteasy.version}</version>
    </dependency>

org.jboss.resteasy
resteasy servlet初始值设定项
${jboss.resteasy.version}

我不知道这是否会对某人有所帮助,但就我而言,问题在于服务器没有在同步时更新。 问题的原因是服务器目标运行时的更改

这与此线程有关:


解决方案是删除并重新创建运行时和服务器。

Wildfly正在端口中正确运行。但在访问资源时,我仍然得到“未找到”的消息。你看到代码中有错误吗?在wildfly中是否有额外的配置?我想我找到了答案。对于这两个条目,web.xml中的服务器名称必须相同。resteasy servlet和resteasy是不同的。通过改变它们,它似乎起了作用。
<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>es.domain</groupId>
  <artifactId>prj</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>Maven Webapp</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <slf4j.version>1.7.21</slf4j.version>
    <!-- current log4j 2 release -->
    <log4j.version>2.5</log4j.version> 
    <jena.version>3.0.1</jena.version>
    <jboss.resteasy.version>3.0.16.Final</jboss.resteasy.version>
    <javax.cdi-api.version>1.2</javax.cdi-api.version>
    <javax.servlet.version>3.0-alpha-1</javax.servlet.version>

    <maven.plugin.version>3.5.1</maven.plugin.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <!-- Binding for Log4J -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>${log4j.version}</version>
        <exclusions>
          <exclusion>
            <artifactId>slf4j-api</artifactId>
            <groupId>org.slf4j</groupId>
          </exclusion>
        </exclusions>
    </dependency>
    <!-- Log4j API and Core implementation required for binding -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>${log4j.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>${log4j.version}</version>
    </dependency>

    <!-- Import the JAX-RS API, we use provided scope as the API is included 
        in JBoss WildFly -->
    <dependency>
      <groupId>org.jboss.resteasy</groupId>
      <artifactId>resteasy-jaxrs</artifactId>
      <version>${jboss.resteasy.version}</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>javax.enterprise</groupId>
      <artifactId>cdi-api</artifactId>
      <version>${javax.cdi-api.version}</version>
    </dependency>

<!-- 
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>${javax.servlet.version}</version>
      <scope>provided</scope>
    </dependency>
-->     
    <!-- Jena library -->
    <dependency>
       <groupId>org.apache.jena</groupId>
       <artifactId>apache-jena-libs</artifactId>
       <type>pom</type>
       <version>${jena.version}</version>
       <exclusions>
        <exclusion>
          <artifactId>log4j</artifactId>
          <groupId>log4j</groupId>
        </exclusion>
        <exclusion>
          <artifactId>slf4j-log4j12</artifactId>
          <groupId>org.slf4j</groupId>
        </exclusion>
       </exclusions>
    </dependency> 
  </dependencies>

  <build>
    <finalName>prj</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${maven.plugin.version}</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
     </plugins>
   </build>
</project>
package es.domain.prj.rest;

import java.util.HashSet;
import java.util.Set;

//import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

//@ApplicationPath("/api")
public class JaxRsActivator extends Application {

    public JaxRsActivator() {
      System.out.println("************ Constructor **********");
    }

    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> classes = new HashSet<Class<?>>();
//        classes.add(MyResource.class);
        return classes;
    }

    @Override
    public Set<Object> getSingletons() {
  System.out.println("************ Initializing **********");
        Set<Object> singletons = new HashSet<Object>();
        singletons.add(new RestService());
        return singletons;
    }
}
package es.domain.prj.rest;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;

@Path("/jlanza")
public class RestService {

    public RestService() {
      System.out.println("*** REST SERVICE ****");
    }

    @GET
    @Path("resource")
    @Produces(MediaType.TEXT_PLAIN)
    public Response getResource() {
      System.out.println("***Calling function****");
      return Response.status(Status.OK).entity("working").build();
    }
}
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-servlet-initializer</artifactId>
        <version>${jboss.resteasy.version}</version>
    </dependency>