java - 无法处理来自 Jar 的 jar 条目

标签 java rest maven tomcat jar

我正在尝试在 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;
    }

}

最佳答案

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

关于java - 无法处理来自 Jar 的 jar 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39443450/

相关文章:

java - 在列表开头添加混淆

java - 如何在 ReSTLet 中发送错误响应?

c# - 如何向使用我的 Azure 云服务的客户计费?

java - 无法访问在设计 View 中创建的 Netbeans 数组

java - 如何使用 Java 将 JSONArray 转换为 R 数据框?

java - 如何部署 "Building REST Services with Spring"教程?

java - 执行 Java 类时发生异常。 java.lang.InterruptedException

java - 无法启动嵌入式tomcat

Java封装&数组

javascript - 使用 REST API 将图像从服务器发送到客户端