当前位置: 首页 > 知识库问答 >
问题:

RESTEasy、错误503和未找到servlet

云京
2023-03-14

我只是试图得到一个RESTEasy的例子工作,它看起来我有一些麻烦设置我需要的环境。

这是我正在使用的简单示例:http://examples.javacodeGeeks.com/enterprise-/rest/resteasy/resteasy-hello-world-example/

我不想在Tomcat-Server上运行这个示例,而是想在Eclipse(?)附带的本地J2EE预览服务器上启动它。

控制台告诉我:

2014-08-29 09:01:12.956:info:oejs.server:jetty8.1.14.v20131031 2014-08-29 09:01:13.141:warn:oejw.webappcontext:上下文O.E.J.W.webappcontext启动失败{/jaxrs-resteasy,file:/home/myuser/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/jaxrs-resteasy/},t.startContext(webappContext.java:1219)在org.eclipse.jetty.server.handler.contextHandler.doStart(contextHandler.java:717)在org.eclipse.jetty.webapp.webappContext.doStart(webappContext.java:454)在org.eclipse.jetty.util.component.abstractLifecycle.start(abstractLifecycle.java:64)在s(servlethandler.java:1322)在org.eclipse.jetty.servlet.servlethandler.setServletMappings(servlethandler.java:1416)在org.eclipse.jetty.servlet.servlethandler.addServletMappings(servlethandler.java:900)在org.eclipse.jetty.webapp.standarddescriptorprocessor.addServletMappings(standarddescriptorprocessor.java:1196)在etty.webapp.webappcontext.startContext(webappcontext.java:1219)在org.eclipse.jetty.server.handler.contextHandler.doStart(contextHandler.java:717)在org.eclipse.jetty.jetty.webapp.webappcontext.doStart(webappcontext.java:454)在org.eclipse.jetty.util.component.abstractLifecycle.start(abstractLifecycle.java:64)在

我的web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>JAXRS-RESTEasy</display-name>

    <servlet-mapping>
        <servlet-name>resteasy-servlet</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>

    <!-- Auto scan REST service -->
    <context-param>
        <param-name>resteasy.scan</param-name>
        <param-value>true</param-value>
    </context-param>

    <!-- this should be the same URL pattern as the servlet-mapping property -->
    <context-param>
        <param-name>resteasy.servlet.mapping.prefix</param-name>
        <param-value>/rest</param-value>
    </context-param>

    <listener>
        <listener-class>
            org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
            </listener-class>
    </listener>

    <servlet>
        <servlet-name>resteasy-servlet</servlet-name>
        <servlet-class>
            org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
        </servlet-class>
    </servlet>

</web-app>

和我的pom.xml:

<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>com.javacodegeeks.enterprise.rest.resteasy</groupId>
  <artifactId>JAXRS-RESTEasy</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <repositories>
    <repository>
      <id>JBoss repository</id>
      <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
    </repository>
  </repositories>
  <dependencies>
    <dependency>
      <groupId>org.jboss.resteasy</groupId>
      <artifactId>resteasy-jaxrs</artifactId>
      <version>3.0.4.Final</version>
    </dependency>
  </dependencies>
</project>

代码本身,尽管我不认为有问题:

package com.javacodegeeks.enterprise.rest.resteasy;

import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Response;

@Path("/RESTEasyHelloWorld")
public class RESTEasyHelloWorldService {

    @GET
    @Path("/{pathParameter}")
    public Response responseMsg(@PathParam("pathParameter") String pathParameter,
            @DefaultValue("Nothing to say") @QueryParam("queryParamter") String queryParamter) {
        String response = "Hello from: " + pathParameter + " : " + queryParamter;

        return Response.status(200).entity(response).build();
    }
}

如果我试图在浏览器中调用它,我只会得到:

HTTP错误:503

访问/jaxrs-resteasy/rest/resteasyHelloWorldService/时出现问题。原因:

Service Unavailable

我试过各种URL,因为我还不知道URL的格式应该是什么。

仅仅是因为丢失的servlet吗?为什么缺少它,Maven难道不应该下载它作为resteasy-jaxrs-3.0.4.final依赖项的一部分吗?

希望有人能给我一个提示,我真的不知道从哪里开始挖掘。

尝试@maleencs pom.xml和web.xml后编辑:控制台:

正在端口8084上启动预览服务器

模块:JAXRS-RESTEasy(/JAXRS-RESTEasy)

null

共有1个答案

洪飞白
2023-03-14

错误代码503表示您的代码未正确部署。换句话说,它是不可部署的。

你的问题是什么引起的还不清楚。这里我们可以做的是为您提供一些工作的示例代码片段。我从我的工作程序中提取了这些。所以请尝试使用这些指南并给出反馈。

web.xml

 <context-param>
    <param-name>resteasy.scan</param-name>
    <param-value>true</param-value>
</context-param>

<servlet>
    <servlet-name>resteasy-servlet</servlet-name>
    <servlet-class>
        org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
    </servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>resteasy-servlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

Java电码

@Path("/payment")
public class PaymentResource {

@GET
@Path("/test")
@Produces("application/json")
    public Response doPaymentTest() {
      return Response.status(201).entity("success.").build();
  }
}

Pom依赖项

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>2.3.1.GA</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson-provider</artifactId>
        <version>2.3.1.GA</version>
    </dependency>

编辑:这里是我的github项目的链接。Mkyong也有很好的例子。

 类似资料:
  • 我不确定我是应该回应这个帖子(CodenameOne在构建后停止工作)还是发布一个新的帖子。 我使用的IDE是IntelliJ。当我打开一个codename one project时,它无法识别它是一个codename one project(codename one按钮是灰色的)。

  • 一旦我导入FormsMoules我开始得到这个错误。我正在使用MatFormField,它似乎无法与FormsMoules一起工作。

  • 我编写了一个简单的RestEasy客户端代理来执行iTunes搜索。看起来是这样的: 我的JSON模型类也很简单。实际上,对于第一个调用,我想要的只是“resultCount”值,只是为了确保连接正常工作。 但是,当我运行一个简单的测试时,我得到以下异常:

  • Traceback(最近的最后一次调用):文件"C:/用户/AppData/本地/程序/Python/Python37/client.py",第54行,引号=json.loads(urllib.request.urlopen(QUERY.格式(random.random())). read())文件"C:\用户\AppData\本地\程序\Python\Python37\lib\urllib\re

  • 我正在尝试使用带有xslt的外部图形来生成PDF。大多数图像都工作正常,但偶尔会有一张“找不到”,尽管可以在Web浏览器上查看。FOP吐出的错误如下: 这是我的外部图形部分: 知道我做错了什么吗? 编辑:看起来这个问题与服务器不允许访问自动请求有关。有没有办法在fop 2.1中设置用户代理的URIResolver?这一功能似乎存在于以前的版本中,但我似乎找不到一种在2.1中实现的方法。

  • 我在Google Chrome开发者工具中发现了这个错误: jquery-2.0.2.min.map没找到 我从我的中删除了这一行,找到了摆脱它的方法: 然而,我不认为这是一个好主意,因为这可能只是一个暂时的解决方案,在未来可能会成为一个问题。因为我并不真正理解这个错误的本质和愚蠢的解决方案:是什么导致了这个错误,有没有更好的解决方法? 显然,这不是一个只与jQuery 2.0.2相关的问题。非常