【问题标题】:How to solve IllegalStateException while loading the restful webapp in glassfish?在 glassfish 中加载 restful webapp 时如何解决 IllegalStateException?
【发布时间】:2018-01-25 12:42:06
【问题描述】:

我正在尝试使用 this link 创建一个基本的 Hello World 应用。

我已按照要求创建了所有内容,但出现以下错误:

加载应用程序时出现异常:java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: com.sun.research.ws .wadl.Response.getRepresentationOrFault()Ljava/util/Lis

我的web.xml

<web-app id="WebApp_ID" version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>Restful Web Application</display-name>

    <servlet>
        <servlet-name>jersey-serlvet</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>com</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>jersey-serlvet</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>

</web-app>

【问题讨论】:

    标签: java rest jersey glassfish-4


    【解决方案1】:

    java.lang.NoSuchMethodError 只有在类的定义发生不兼容的更改时,才会在运行时发生错误。

    我可以看到,你已经用Jersey 1.8 编译了你的代码,并在Glassfish 4.1.1 上部署了你的webapp。

    并且,根据 oracle official blog 之一,Glassfish 4.1.1 具有 Jersey 2.2

    因此,球衣版本的结论不匹配(使用 Jersey 1.8 编译,但 Glassfish 使用 Jersey 2.2)。因此,您会在运行时收到此异常。

    可能的解决方案是更改您的代码以支持jersey 2.2(当然也替换库)

    【讨论】:

      猜你喜欢
      • 2016-09-23
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-23
      • 2023-04-01
      • 2018-12-09
      • 2010-10-20
      相关资源
      最近更新 更多