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

HTTPstatus 500在部署基于泽西的Restful服务项目中

能翔宇
2023-03-14

根据本教程,我最近开始使用泽西岛。我已经在Web中配置了服务/包名称.xml好吧,现在的事情是我得到了一个javax.servlet.Servlet例外:Servlet.init()例外,下面有以下堆栈跟踪:

exception

javax.servlet.ServletException: Servlet.init() for servlet Jersey REST Service threw exception
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    java.lang.Thread.run(Unknown Source)
root cause

com.sun.jersey.spi.inject.Errors$ErrorMessagesException
    com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
    com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136)
    com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199)
    com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:771)
    com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:766)
    com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:488)
    com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:318)
    com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:609)
    com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:210)
    com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
    com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556)
    javax.servlet.GenericServlet.init(GenericServlet.java:212)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    java.lang.Thread.run(Unknown Source)

这是我的Jes.java类文件:

package webb;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/Jes")
public class Jes {

      @GET
      @Produces(MediaType.TEXT_PLAIN)
      public String sayPlainTextHello() {
            return "Hello Jersey";
          }

      @GET
      @Produces(MediaType.TEXT_PLAIN)
      public String sayXMLHello() {
            return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>";
          }

          // This method is called if HTML is request
          @GET
          @Produces(MediaType.TEXT_HTML)
          public String sayHtmlHello() {
            return "<html> " + "<title>" + "Hello Jersey" + "</title>"
                + "<body><h1>" + "Hello Jersey" + "</body></h1>" + "</html> ";
          }

    public static void main(String[] args) {
    }

}

还有网络.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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>webb</display-name>
  <servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>com.sun.jersey.config.property.packages</param-name>
      <param-value>webb</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>
</web-app>

这是我的应用程序设置:

Apache Tomcat 6.0 < br > Jersey-core-1.8 . jar < br > Jersey-bundle-1.8 . jar < br > ASM-3.1 . jar < br > JRE 7 < br > Windows 64位< br >

-

共有1个答案

璩珂
2023-03-14

不确定是不是你的问题,每件事看起来都没问题,但是下面的映射出现了两次:

  @GET
  @Produces(MediaType.TEXT_PLAIN)

你的说XMLHello()应该用@Produces(MediaType.TEXT_XML)来注释

 类似资料:
  • 我是JavaWeb服务的新手,我正在努力解决一个基本问题。 在找到了一堆过时的示例后,我设法找到了一些使用XML的方法,但是当我要求它返回JSON时,相同的代码就不起作用了。 起初我认为它缺少JSON格式化程序,但JAXB应该负责从POJO到JSON的转换,所以我认为这不是问题所在。 Tomcat中引发的错误是: 网状物。XML Todo.java TodoResource。Java语言 你知道为

  • 问题内容: 我一直坚持使用jersey库为RESTful Web服务创建gradle项目。项目配置应该能够在码头应用服务器内启动服务。我已经找到了资源:https : //github.com/ziroby/jetty-gradle-hello- world 该解决方案的我的问题是,它使用的是球衣的过时版本。我至少需要版本2(最好是最新的2.14)。我试图在Maven Central上搜索新版本,

  • 我在eclipse中使用“Jersey”原型开发了一个非常小的restful Web服务,并且在Tomcat中成功地部署了该服务。但是,我无法在WebLogic12c中部署它。这是我到目前为止所尝试的: 创建了一个包含泽西岛图书馆的共享库,正如我在其中一篇文章中看到的。这是我的pom.xml,它生成包含所需清单文件的共享库: 块引号 在我的webservice应用程序中的WEB-INF文件夹下添加

  • 我正在编写一个简单的RESTful Web服务,使用Java、tomcat7、jersey和IDE eclipse。 当我使用eclipse(服务器)启动web服务时,它运行良好。我测试了GET和POST方法。但当我在WAR文件中导出应用程序并使用tomcat manage UI部署时。它返回404 not found状态。 下面是一个例子: 这里是网络。xml: 有人能解释在eclipse中启动

  • 我有一个基于Jersey的Rest服务在tomcat服务器上运行。没有UI,只是一个提供一些rest服务的服务器。现在,要访问这个服务,我必须输入的URL相当长。类似于,其中MyApp是我部署的webapp,url_pattern是我在web.xml中的servlet映射中定义的模式,classPath和method分别是类和方法的@path注释。有没有可能缩短它,这样我就可以去掉这个URL的My

  • 在tomcat 7.0.57中部署应用程序时,我得到了Valiate Jar文件错误。将tomcat版本更改为8是解决此问题的唯一方法?这是我的错误日志: org.apache.catalina.loader.WebappClassLoader validateJarFile INFO: validateJarFile(/home/webapps/myapp/WEB-INF/lib/tomcat-