Ошибка с указанием «Плохая версия в файле .class» - PullRequest
2 голосов
/ 01 ноября 2010

Я работал с кодом JSP и выполнял то же самое на сервере tomcat5.5. Сработало оштрафовано. Теперь я скопировал тот же код в другую систему на сервере Tomcat. Но при отправке этого файла JSP я получаю следующую ошибку. В чем может быть причина ошибки? Пожалуйста, сообщите.

root cause:
javax.servlet.ServletException: Bad version number in .class file (unable to load class myfirst.SearchLink)
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
org.apache.jsp.Test_jsp._jspService(Test_jsp.java:70)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load class myfirst.SearchLink)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1962)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:931)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1403)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1282)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:125)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
java.lang.ClassLoader.loadClassInternal(Unknown Source)
org.apache.jsp.Test_jsp._jspService(Test_jsp.java:51)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

UPDATE

Даже после компиляции всего имеющегося Java-кода в текущей версии Java я получаю ту же ошибку ..

ПОСЛЕДНИЕ ОБНОВЛЕНИЯ

@ Pangea Да, я использую myfirst.SearchLink в своем коде JSP следующим образом:

myfirst.SearchLink o=new myfirst.SearchLink(); String result=o.checkURL(url);

А мой код Java для SearchLink такой, как показано ниже,

package myfirst;

import java.net.URL;
import java.net.URLConnection;
import java.sql.*;
public class SearchLink{
public static void main(String args[]) throws Exception {


}

public String checkURL(String link)throws SQLException{
    Connection con=null;
    Statement stmt=null;
    Statement stmtR=null;
    String mem;
    if(con==null){
            SQLConnection.setURL("jdbc:sqlserver://192.168.2.53\\SQL2005;user=sa;password=365media;DatabaseName=LN_ADWEEK");
            con=SQLConnection.getNewConnection();
            stmt=con.createStatement();
            stmtR=con.createStatement();
    }
    try{
        ResultSet rs;
        boolean hasRows=false;
        rs=stmt.executeQuery("select url from urls_linkins where url='"+link+"'");
        while(rs.next()){
            hasRows=true;
            //String mem=rs.getString(1);
            rs.close();
            return "This URL already exists in DB";
        }
        rs.close();
        if (!hasRows)
        {
            URL url = new URL(link);
            String domain=url.getHost();
            String Str="This URL does not exist in DB<br><br><br>";
            rs=stmtR.executeQuery("select url from urls_linkins where url like '%"+domain+"%'");
            boolean flag=false;
            while(rs.next()){
                if(!flag){
                Str=Str+"<Br>"+"Similar Domains in DB are";
                }
                flag=true;
                mem=rs.getString(1);
                //System.out.println("Similar Domains already in DB"+mem);
                Str=Str+"<Br>"+mem;
            }
            return Str;
        }
        return "This URL does not exist in DB";
    }catch(Exception e){
        e.printStackTrace();
        return e.getMessage();
    }finally{
        if(stmtR!=null){
            stmtR.close();
        }
        if(stmt!=null){
            stmt.close();
        }
        if(con!= null){
            con.close();
        }

    }
}


public String addURL(String link,String source)throws SQLException{
        Connection con=null;
        Statement stmt=null;
        Statement stmtR=null;
        final String rssvar="Rss";
        if(con==null){
                SQLConnection.setURL("jdbc:sqlserver://192.168.2.53\\SQL2005;user=sa;password=365media;DatabaseName=LN_ADWEEK");
                con=SQLConnection.getNewConnection();
                stmt=con.createStatement();
                stmtR=con.createStatement();
    }
        try{
            PreparedStatement insertUrlStatement = con.prepareStatement("INSERT INTO urls_linkins(url, source_name, is_active, is_periodic, Link_Type, New_Entry) VALUES(?, ?, ?, ?, ?, ?)");
            //insertUrlStatement.setInt(1, 21211);
            insertUrlStatement.setString(1, link);
            insertUrlStatement.setString(2, source);
            insertUrlStatement.setInt(3, 1);
            insertUrlStatement.setInt(4, 0);
            insertUrlStatement.setString(5, rssvar);
            insertUrlStatement.setInt(6, 1);
            insertUrlStatement.executeUpdate();
            insertUrlStatement.close();
            return "The URL has been added to the Database";}
        catch(Exception e){
            e.printStackTrace();
            return e.getMessage();
        }finally{
            if(stmtR!=null){
                stmtR.close();
            }
            if(stmt!=null){
                stmt.close();
            }
            if(con!= null){
                con.close();
            }
        }


}

public String addURL1(String link,String source)throws SQLException{
        Connection con=null;
        Statement stmt=null;
        Statement stmtR=null;
        final String other="Other";
        if(con==null){
                SQLConnection.setURL("jdbc:sqlserver://192.168.2.53\\SQL2005;user=sa;password=365media;DatabaseName=LN_ADWEEK");
                con=SQLConnection.getNewConnection();
                stmt=con.createStatement();
                stmtR=con.createStatement();
    }
        try{
            PreparedStatement insertUrlStatement = con.prepareStatement("INSERT INTO urls_linkins(url, source_name, is_active, is_periodic, Link_Type, New_Entry) VALUES(?, ?, ?, ?, ?, ?)");
            //insertUrlStatement.setInt(1, 21211);
            insertUrlStatement.setString(1, link);
            insertUrlStatement.setString(2, source);
            insertUrlStatement.setInt(3, 1);
            insertUrlStatement.setInt(4, 0);
            insertUrlStatement.setString(5, other);
            insertUrlStatement.setInt(6, 1);
            insertUrlStatement.executeUpdate();
            insertUrlStatement.close();
            return "The URL has been added to the Database";}
        catch(Exception e){
            e.printStackTrace();
            return e.getMessage();
        }finally{
            if(stmtR!=null){
                stmtR.close();
            }
            if(stmt!=null){
                stmt.close();
            }
            if(con!= null){
                con.close();
            }
        }
}

public String addmultiple(String file)throws SQLException{
        return file;
}
}

Ответы [ 3 ]

4 голосов
/ 01 ноября 2010

Это означает, что ваш код скомпилирован с использованием версии Java, которая не поддерживается сервером Tomcat, на котором вы его запускаете. Может быть, вы переместили свой код в более старую версию Tomcat, чем 5.5, в которой используется более старая версия Java

2 голосов
/ 01 ноября 2010

Вы используете более новую версию кода на старой версии JVM (например, выполняете код Java 5 на JDK 4).Я предполагаю, что другой Tomcat работает на более старой версии Java по сравнению с Java на сервере Tomcat 5.5.

0 голосов
/ 15 декабря 2011

У меня было то же исключение, но я изменил настройку следующим образом, что сработало у меня:

  • Щелкните правой кнопкой мыши свой проект eclipse и выберите свойства
  • Во всплывающем окне отобразятся все настройки дерева выбора Java Compiler
  • Затем выберите желаемый уровень соответствия компилятору и снова создайте проект
  • перезапустите tomcat (я использовал tomcat 6)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...