java - 如何使用 Java 1.5 和 jersey 1.2 公开 RESTful Web 服务,.class 文件中的版本号错误

标签 java json rest jersey java-5

Error : UnsupportedClassVersionError: Bad version number in .class file

使用了以下 jar :

  • 激活.jar
  • asm-3.1.jar
  • jackson-core-asl.jar
  • jackson-jaxrs.jar
  • jackson-mapper-asl.jar
  • jackson-xc.jar
  • jaxb-api-2.2.jar
  • jersey-client-1.2.jar
  • jersey-core.jar
  • jersey-json.jar
  • jersey-server-1.0.2.jar
  • jettison-1.0.jar
  • jsr311-api-1.1.1.jar

==================================================

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_2_4.xsd"  version="2.4"> <display-name>com.rest</display-name> 
    <welcome-file-list><welcome-file>welcome.jsp</welcome-file>
    <welcome-file>default.html</welcome-file></welcome-file-list> 
    <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.rest</param-value></init-param>
    <init-param><param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name><param-value>true</param-value>
    </init-param><load-on-startup>1</load-on-startup>
    </servlet> 
    <servlet-mapping>
    <servlet-name>jersey-serlvet</servlet-name>
    <url-pattern>/sevice/*</url-pattern>
    </servlet-mapping>  
    </web-app>

======================================================

欢迎.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html><head><meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
    <title>Tracks</title></head>
    <body>
    <form action="sevice/myMusic/post" method="post">
    <pre>Song   : <input type="text" name="newSong"></pre>
    <pre>Singer : <input type="text" name="singer"></pre>
    <input type="submit" value="Submit" />
    </form>
    </body>
    </html>

========================================================= JSONService.java

import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

@Path("/myMusic")
public class JSONService {

static MyDataSingleton singletonData= MyDataSingleton.getInstance();
Map<String, String> trackMap=new HashMap<String,String>();

@GET
@Path("/getAllTracks")
@Produces(MediaType.APPLICATION_JSON)
public Response getAllTracksInJSON() {
    System.out.println("Gor Inside getAll");
    if(isMapEmpy(singletonData.getSongsMap())){
        return Response.status(400).entity("No track found in system. Please create your track list first !").build();
    }
    return Response.ok().entity(singletonData.getSongsMap()).build();
  }
}

========================== Track.java

import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Track {
String song;
String singer;

public String getSong() {
    return song;
}

public void setSong(String song) {
    this.song = song;
}

public String getSinger() {
    return singer;
}

public void setSinger(String singer) {
    this.singer = singer;
}

@Override
public String toString() {
    return "Song [song=" + song + ", singer=" + singer + "]";
}

public String myStringConversion(){
    return song+":"+singer;
}
}

最佳答案

存在 jar 版本不匹配的情况,包含的所有 jar 都必须符合 jersey 1.2 文档, dependencies list can be check here

关于java - 如何使用 Java 1.5 和 jersey 1.2 公开 RESTful Web 服务,.class 文件中的版本号错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42532963/

相关文章:

java - 尝试实现一个简单的 Jersey Rest 项目

要匹配的 Java 模式;在 & 中跳过它

android - 如何使用音频文件 ID 获取 soundcloud 音频下载 url

python - 使用 Rest API 和 Tweepy 从推文下载完整的 JSON 数据,通过推文 ID 查询

java - 使用 Gson pretty-print JSON 字符串的问题

php - Json返回字符

javascript - 使用 JavaScript 和 REST 从 SharePoint 列表中删除项目

java - 不兼容的类型。分数无法转换为字符串

java - 使用 lambda 表达式 java 从比较器返回值

java - 如何使用 Spring 的 Java Configuration 指定 Filter 执行顺序?