2010-08-25 4 views
1
An error occurred at line: 9 in the jsp file: /Test1.jsp 
The method addURL(String, String) is undefined for the type SearchLink 
6: 
7: if(url1!=null && url1.trim().length()!=0){ 
8:  myfirst.SearchLink p=new myfirst.SearchLink(); 
9:  String result=p.addURL(url1,source1); 
10:   out.println(result); 
11:   System.out.println(result); 
12:  }else{ 

S'il vous plaît laissez-moi savoir si vous avez besoin de plus de détails pour répondre à la cause d'erreur. Merci d'avancecompilation JSP échoue avec « La méthode [MethodSignature] est pas défini pour le type [ClassName] »

Le codage jsp complet est comme ci-dessous.

<%@ page import="myfirst.*" %> 
<% 

String url1=request.getParameter("url"); 
String source1=request.getParameter("source"); 

if(url1!=null && url1.trim().length()!=0){ 
    myfirst.SearchLink p=new myfirst.SearchLink(); 
    String result=p.addURL(url1,source1); 
    out.println(result); 
    System.out.println(result); 
}else{ 
    System.out.println("Not a valid url"); 
    out.println("Not a valid url"); 
} 
%> 

Et voici mon code Java nommé SearchLink et j'ai compilé cette version trop ..

package myfirst; 

import java.net.URL; 
import java.net.URLConnection; 
import java.sql.*; 
public class SearchLink{ 
public static void main(String args[]) throws Exception { 
    //String link="http://hosted.ap.org"; 
} 

public String checkURL(String link,String source)throws SQLException{ 
    Connection con=null; 
    Statement stmt=null; 
    Statement stmtR=null; 
    //link="http://www.topix.com/rss/city/ellensburgwa"; 
    //String source="Sample"; 
    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 urlbckup 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) 
     { 

     } 
     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; 
     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 urlbckup VALUES(?, ?, ?, ?, ?)"); 
      insertUrlStatement.setInt(1, 21211); 
      insertUrlStatement.setString(2, link); 
      insertUrlStatement.setString(3, source); 
      insertUrlStatement.setInt(4, 1); 
      insertUrlStatement.setInt(5, 0); 
      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(); 
      } 
    } 


} 

}

+0

Le problème est que 'myfirst.SearchLink' ne définit pas une méthode' addURL (String, String) '. Vous l'avez orthographié incorrectement, ou il n'existe pas. – Nubsis

+0

Pouvez-vous nous montrer la classe 'SearchLink', car il y a une erreur? – Riduidel

+0

J'ai mis à jour le code .... S'il vous plaît aviser .. – LGAP

Répondre

6

Vous devez redéployer votre application.

Dans la plupart des EDI, lorsque vous déployez des applications Web, les pages jsp peuvent toujours être modifiées et «redéployées» à la volée sur le conteneur Web. Mais avec les classes, vous devez recompiler votre code et redéployer votre application.

Maintenant, certains IDE et auto redéployer votre application sur enregistrer. Et il existe des projets comme jrebel qui vous permettent de changer de classe dans votre application sans le redéployer.

+0

Combien de fois mon code a été parfait, et le serveur me donne des erreurs sur le code qui a été réparé et je ne me souviens pas le réparer ... Trop. – Kieveli

+0

Tomcat a dû être redémarré ... maintenant ça marche bien ... merci les gars .. – LGAP

+0

Je me demandais juste pendant plus d'une demi-heure pourquoi j'ai eu une erreur lors de l'édition d'un JSP dans Eclipse, et en ajoutant les classes StringBuffer ou StringBuilder même erreur (plus précieusement, en utilisant leur constructeur fait). Toutes les classes du paquet java.lang sont supposées être importées automatiquement.Finalement, j'ai réalisé que Tomcat était toujours en cours d'exécution, j'ai donc appuyé sur le carré rouge pour l'arrêter, puis j'ai sélectionné Projet -> Nettoyer ... dans le menu, et l'erreur est partie. –

1

cela signifie que la classe SearchLink ne dispose pas d'une méthode avec la signature addURL (String, String).

2

En supposant que myfirst.SearchLink est un nom de classe complet, le compilateur vous dit que la classe SearchLink ne définit pas une méthode appelée addURL qui prend deux arguments String.

Causes possibles:

  • vous avez mal orthographié le nom de la méthode
  • vous avez oublié de déclarer la méthode
  • vous avez déclaré que la méthode avec des arguments avec les mauvais types
  • vous avez appelé la méthode avec des arguments de mauvais types.

EDIT

Aucune de ces semblent s'appliquer, donc je pense suivante est que vous avez négligé de compiler et déployer la dernière version de la classe SearchLink à votre serveur Web.

Questions connexes