【问题标题】:Unable to process jar entry from Jar无法处理来自 Jar 的 jar 条目
【发布时间】:2017-01-19 11:40:03
【问题描述】:

我正在尝试在 RESTful API 上运行简单程序,但出现以下异常

>Sep 12, 2016 10:05:02 AM org.apache.catalina.startup.ContextConfig processAnnotationsJar
SEVERE: Unable to process Jar entry [javassist/tools/rmi/RemoteRef.class] from Jar [jar:file:/C:/Users/user/examples/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/demoWebservice/WEB-INF/lib/javassist-3.19.0-GA.jar!/] for annotations
java.io.EOFException
    at java.io.DataInputStream.readUnsignedShort(Unknown Source)
    at org.apache.tomcat.util.bcel.classfile.Utility.swallowMethodParameters(Utility.java:797)
    at org.apache.tomcat.util.bcel.classfile.Attribute.readAttribute(Attribute.java:171)
    at org.apache.tomcat.util.bcel.classfile.FieldOrMethod.<init>(FieldOrMethod.java:57)
    at org.apache.tomcat.util.bcel.classfile.Method.<init>(Method.java:71)
    at org.apache.tomcat.util.bcel.classfile.ClassParser.readMethods(ClassParser.java:267)
    at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:127)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2058)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1934)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1900)
    at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1885)
    at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1317)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:374)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

我的 web.xml 如下所示...

<?xml version="1.0" encoding="UTF-8"?>
<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>demoWebservice</display-name>

    <servlet>
    <servlet-name>Java WS</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>jersy.config.server.provider.packages</param-name>
      <param-value>book</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
    <servlet-name>Java WS</servlet-name>
    <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>

类如下图:-

package book;

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

@Path("/book")
public class Book {

    @GET
    @Produces(MediaType.TEXT_XML)
    public String sayHelloXML(){
        String response = "<?xml version='1.0'?>"
                + "<hello> Hello World </hello>";
        return response;
    }

}

【问题讨论】:

  • 能否请您提供更多信息,您在哪里看到异常 Server/Client ?,哪个 Server ?
  • 服务器 tomcat 7 和客户端...我在本地 tomcat 7 服务器上运行它
  • 我想在我的本地运行 rest 完整的 web 服务示例,并在我的系统中安装了 tomcat 7 和 jdk 8,使用 jersey 2.0 bundle m。有兼容性问题吗?
  • 哪个分辨率没有找到任何解决这个问题的办法...

标签: java rest maven tomcat jar


【解决方案1】:

您使用的是哪个 jdk 版本? 我在 1.8.0_92 之后尝试使用 jdk 版本,问题得到了解决。 在此之前,由于 NoClassDefFoundError,我的 jar 工件无法构建。虽然编译显示存在有效的类。

【讨论】:

    【解决方案2】:

    我遇到了同样的错误。我使用的是 java 8 的 tomcat 8。我升级到 tomcat 9 并解决了问题。猜测它与 java 8 中的一些新功能有关

    【讨论】:

      猜你喜欢
      • 2013-03-20
      • 1970-01-01
      • 2020-12-07
      • 2019-08-06
      • 2019-04-03
      • 1970-01-01
      • 2018-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多